Nwlapcug.com


Processi In Python

In terminologia informatica scienza, un processo è un'istanza in esecuzione di un programma nella memoria del computer. Questi processi in memoria possono anche generare altri processi. Il linguaggio, come altre lingue adatto per lo sviluppo di software per desktop, di programmazione Python offre una biblioteca per facilitare la creazione e la manutenzione dei processi su un computer.

Processi

Quando un utente inizia un'applicazione come un browser Web, l'applicazione diventa un processo in esecuzione nel sistema operativo. Prima dell'esecuzione, un programma risiede semplicemente come dati sul disco rigido. Quando viene eseguito, il sistema operativo carica il programma in memoria principale, o RAM. Tutte le applicazioni in esecuzione sono dato spazio nella RAM dal sistema operativo mentre corrono. Durante l'esecuzione, il sistema operativo controlla i processi di applicazione attraverso una tabella di processo che descrive lo stato del processo e dove risiede nella memoria.

Processi di deposizione delle uova

I processi possono deporre le uova di altri processi destinati a svolgere il lavoro in parallelo durante l'esecuzione del programma. Questo "multiprocessing" consente di gestire molte mansioni differenti allo stesso tempo. Un programma in Python, ad esempio, può generare un processo separato utilizzando la libreria "multiprocessing" e il relativo oggetto di "Processo", come nell'esempio seguente:

Processo di importazione da multielaborazione

os di importazione

Hello def:

Print('Hello')

p = Process(target=hello)

p.Start() //starts processo figlio "p"

Processi di lavoro

Un processo figlio, dato qualche compito, si esibirà l'attività mentre il processo padre esegue il proprio compito. Nell'esempio seguente, un programma Python genera un processo, e sia il processo padre e processo figlio chiama lo stesso metodo "os.getpid()", che restituisce l'id numerico del processo corrente:

pId() def:

stampa (' sto processo: ', os.getpid())

p = Process(target=pId)

p.Start()

stampa (' sto processo: ', os.getpid())

p.Join() //ends la 'p' processo

L'output di questi due processi è come segue. Nota che il genitore "stampa" comando con la minuscola "processo" in genere viene eseguito per primo.

Sto processo: 57883

Sto processo: 57884

Condivisione di dati tra processi

Due processi possono inoltre condividere dati tra di loro con un oggetto di "Tubo" che crea una connessione tra i due processi. Utilizzando questi oggetti connessione, un processo figlio può inviare dati a un processo padre, consentendo il processo padre di manipolare o stampare i dati salvati. Nell'esempio seguente viene visualizzato l'utilizzo dell'oggetto della Pipe:

send(child) def:

Child.Send ([1, 2, 3]) //the processo figlio invia i dati durante l'esecuzione

Child.Close()

Se nome = = 'principale':

parent, child = Pipe()

p = Process(target=f, args=(child,))

p.start()

print parent.recv() //parent process receives data from child

p.join