Futures simultanei di Python

Futures simultanei di Python
“Simile a come possiamo costruire e utilizzare il pool di thread, un pool di processo può essere formato e utilizzato. I pool di processi sono raccolte di processi al minimo e precedentemente creati in attesa di attività assegnate. Ogni volta che dobbiamo eseguire diverse azioni, l'uso di un pool di processi è migliore per la costruzione di procedure innovative per ogni attività. Il simultaneo.Futures è un componente trovato nella libreria standard di Python. Per dare ai programmatori un'interfaccia elevata per l'avvio di processi simultanei, questo pacchetto è stato introdotto in Python 3.2.

L'interfaccia per eseguire attività che utilizzano un pool di thread o processi è fornita da questo livello di incapsulamento in cima ai componenti multitasking e multithreading di Python. Il simultaneo.Il modulo Futures di Python ha inventato un "esecutore" di classe astratto insieme alle sue sottoclassi concreti che vengono utilizzati al posto della classe "Executor". È perché la classe "esecutore" non può essere utilizzata direttamente nel codice."

Esempio 01

Iniziamo con la prima illustrazione del nostro articolo. Ti mostreremo l'uso della sottoclasse di "esecutore" di "esecutore".e., Ricevi un flusso di attività per il completamento dei lavori poiché impiega il multi-processo. Tale flusso assegna posti di lavoro a thread esistenti e pianifica la loro esecuzione. Abbiamo iniziato questo programma Python con l'uso del "simultaneo.Futures ”Modulo che importa la sua sottoclasse ProcessPoolexecutor qui nel codice.

Successivamente, abbiamo importato la classe di sonno di un modulo Time in Python tramite l'uso di e importazioni chiave di importazione. Stiamo definendo una funzione con il nome "thread", prendendo una variabile di messaggio come argomento in esso. Questa funzione ha utilizzato la funzione Call to sleep () di Python per fermare l'esecuzione solo per 2 secondi e restituire il messaggio alla funzione principale ().

Mentre la definizione della funzione principale () è stata avviata con la chiamata alla funzione "ProcessPoolexutor".modulo futures per creare un pool di 5 processi e salvare il risultato del pool su un oggetto "esecutore". Questo oggetto "esecutore" è stato utilizzato per chiamare la funzione "invia" per creare 5 thread trasmettendo loro un messaggio "completato" nei parametri. L'esecuzione della funzione ha cercato di dormire per 2 secondi e restituire il messaggio. Il risultato restituito sarebbe salvato nella variabile "futuro". Abbiamo chiamato la funzione "fatta" con la variabile dell'oggetto futuro all'interno della dichiarazione "stampa" della funzione Python per visualizzare il risultato restituito, i.e., vero o falso.

Dopo questo, abbiamo usato la funzione di sonno per far continuare l'esecuzione del programma dopo 5 secondi e quindi controllare il risultato del pool di esecutori con l'uso della funzione fatta del futuro oggetto. Alla fine, l'oggetto "futuro" è stato utilizzato per chiamare la funzione integrata del risultato () simultanea di Python. Modulo futures per vedere il risultato effettivo, io.e., Completato alla fine.

Nelle ultime righe, possiamo vedere che la funzione principale () è stata chiamata qui. Salviamo ed eseguiamo il nostro codice per vedere il risultato effettivo per l'utilizzo della concorrente.pacchetti futures nei programmi Python. L'immagine seguente include anche il codice per la spiegazione sopra menzionata.

Dopo aver eseguito questo programma in Spyder 3, abbiamo ottenuto il risultato di emergenza mostrato nello strumento Spyder3. Quando è stato avviato il pool di esecutore di 5 thread, chiama la funzione thread e dorme per 2 secondi, quindi restituisce il messaggio. Poiché il processo del pool non si completa ancora, quindi il "futuro.fatto "restituisce falso e abbiamo mostrato il risultato" falso ". L'esecuzione di questo programma dorme per i prossimi 5 secondi e quindi mostra il risultato di "Future.fatto di nuovo ".

Dal momento che vengono passati un totale di 5 secondi e il pool è stato eseguito con successo, restituisce vero in questo caso. Finalmente, il "futuro.La funzione risultato ”ha visualizzato il messaggio“ completato ”per il pool di 5 processi completi di esecuzione. Questo è il risultato previsto del codice di cui sopra.

Esempio 02

Diamo un'occhiata a un altro esempio per utilizzare la sottoclasse di processpoolexecutor di concorrente.modulo futures in python. Quindi, abbiamo importato la sottoclasse ProcessPoolexecutor qui. Dopo questo, abbiamo inizializzato un elenco "num" di 4 diversi valori numerici, i.e., 14, 7, 3, 15. In questo programma abbiamo usato un totale di 2 funzioni. L'esecuzione della funzione principale () è iniziata con l'uso di ProcessPolexecutor Context Manager.

Contesto manager può essere utilizzato come secondo metodo per creare istanze di elabolexecutor. Funziona in modo simile all'approccio mostrato nell'esempio precedente. La migliore caratteristica del gestore del contesto è quanto sia sintatticamente attraente. Quindi, lo abbiamo usato qui per creare un pool di 3, io.e., lavoratori totali. Con questo, l'esecutore ha utilizzato la funzione Map () per passare un numero di ciascun elenco di un elenco "num" come parametro alla funzione "cubo" per la mappatura. La funzione cubo restituirà il cubo di ciascun numero passato dall'elenco ad esso tramite l'uso di formule "n*n*n" e salvare il risultato restituito in "R" variabile.

Il ciclo "for" è qui per utilizzare il risultato "r" per ciascun elemento per visualizzare ciascun valore restituito dalla funzione cubo sulla console tramite l'uso della funzione "stampa" con la variabile "Val". Le ultime 2 righe mostrano l'uso della chiamata di funzione principale (). L'immagine seguente include anche il codice per la spiegazione sopra menzionata.

L'output ha mostrato il cubo di tutti i 4 elementi dell'elenco "num". Questo è il risultato previsto del codice di cui sopra.

Conclusione

Questo articolo riguarda l'uso del "simultaneo.Modulo Futures ”di Python nei programmi per vedere i suoi usi. Nel nostro primo esempio, l'abbiamo utilizzato per creare un pool di 5 processi e restituire il risultato prima e dopo l'utilizzo della funzione di sonno nel codice. Dopo questo, abbiamo utilizzato un altro esempio per consumare il "simultaneo.Futures ”Modulo e visualizza alcuni calcoli matematici sulla console dello strumento Python Strumento Sypder.