Coroutine: La parte del codice che può essere messa in pausa e ripresa in script multi-thread è chiamata coroutine. Coroutines Work cooperativamente in un programma multi-thread. Quando una coroutine fa una pausa, è possibile eseguire altre coroutine.
Loop Event: Viene utilizzato per avviare l'esecuzione delle coroutine e gestire le operazioni di input/output. Ci vogliono più attività e completali.
Compito: L'esecuzione e il risultato delle coroutine sono definiti dalle attività. È possibile assegnare un numero multiplo di attività utilizzando la libreria Asyncio ed eseguire le attività in modo asincrono.
Futuro: Agisce come un deposito futuro in cui il risultato delle coroutine archiverà dopo il completamento. Ciò è utile quando una coroutine richiede di attendere il risultato di altre coroutine.
Come è possibile implementare i concetti di cui sopra della libreria Asyncio è mostrato in questo tutorial utilizzando alcuni esempi semplici.
Crea un file denominato Async1.Py e aggiungi il seguente codice. La libreria Asyncio viene importata per utilizzare le funzioni di questa libreria. aggiungere La funzione è dichiarata per calcolare la somma di un particolare intervallo di numeri. Il numero di numeri da 1 a 101 è assegnato dall'attività con un secondo ritardo. Il ciclo di eventi è dichiarato che eseguirà fino a completare tutte le attività del metodo principale. Dopo aver calcolato il valore, la funzione aspetterà un secondo e stamperà il risultato.
Importa asyncioProduzione:
$ python3 async1.PyL'output mostra la somma da 1 a 101 che è 5050.
Esempio-2: crea più coroutine
L'uso della libreria Asyncio verrà cancellato quando eseguirai più coroutine contemporaneamente. Crea un nuovo file denominato Async2.Py e aggiungi il seguente codice. Tre compiti vengono generati con tre diverse gamme e valori di attesa in principale() metodo. La prima attività calcolerà la somma da 5 a 500000 in attesa di 3 secondi, la seconda attività calcolerà la somma da 2 a 300000 in attesa di 2 secondi e la terza attività calcolerà la somma da 10 a 1000 in attesa di 1 secondo. L'attività con valori di attesa bassi si completerà all'inizio e l'attività con un valore di attesa elevato verrà finalmente completata.
Importa asyncioProduzione:
$ python3 async1.PyL'output mostra che Task3 è completato per primo perché il tempo di attesa di questa attività era solo di 1 secondo e Task1 è completato per ultimo perché il tempo di attesa di questa attività era di 3 secondi.
Esempio-3: coroutine con futuro
Questo esempio mostra l'uso del futuro oggetto della libreria Asyncio. Crea un nuovo file denominato Async3.Py e aggiungi il seguente codice. In questo esempio sono assegnati due compiti. show_message La funzione viene dichiarata qui per stampare il messaggio prima di eseguire la coroutine e dopo aver completato l'esecuzione. La prima attività aspetterà 2 secondi e completerà ultimo. Il secondo compito aspetterà 1 secondi e completerà prima.
Importa asyncioProduzione:
$ Python3 Async3.PyViene mostrato nell'output che il task1 viene avviato per primo e completato per ultimo e Task2 viene avviato in seguito ma completato per primo per il breve tempo di attesa.
Il concetto di base della programmazione asincrona che utilizza la libreria Asyncio di Python è spiegato qui. Spero che sarai in grado di scrivere codice multi-thread in Python dopo aver praticato gli esempi di questo tutorial.