Coroutine: La partie du code qui peut être interrompue et reprendre dans un script multithread s'appelle Coroutine. Les coroutines travaillent en coopération dans un programme multithread. Quand une coroutine s'arrête, une autre coroutine peut exécuter.
Boucle d'événement: Il est utilisé pour démarrer l'exécution des coroutines et gérer les opérations d'entrée / sortie. Il faut plusieurs tâches et les terminer.
Tâche: L'exécution et le résultat des coroutines sont définis par les tâches. Vous pouvez attribuer plusieurs tâches à l'aide de la bibliothèque Asyncio et exécuter les tâches de manière asynchrone.
Avenir: Il agit comme un futur stockage où le résultat des coroutines se stockera après l'achèvement. Ceci est utile lorsque une coroutine a besoin d'attendre le résultat d'une autre coroutine.
Comment vous pouvez implémenter les concepts ci-dessus de la bibliothèque Asyncio est montré dans ce tutoriel en utilisant quelques exemples simples.
Créer un fichier nommé async1.py et ajouter le code suivant. La bibliothèque Asyncio est importée pour utiliser les fonctions de cette bibliothèque. ajouter La fonction est déclaré pour calculer la somme d'une gamme particulière de nombres. La plage de nombres de 1 à 101 est attribuée par la tâche avec une seconde retard. La boucle d'événement est déclarée qu'elle fonctionnera jusqu'à ce que toutes les tâches de la méthode principale complètent. Après avoir calculé la valeur, la fonction attendra une seconde et imprimera le résultat.
importer asyncioSortir:
$ python3 async1.pyLa sortie montre la somme de 1 à 101 qui est 5050.
Exemple-2: Créez plusieurs coroutines
L'utilisation de la bibliothèque Asyncio sera effacée lorsque vous exécuterez plusieurs coroutines simultanément. Créer un nouveau fichier nommé async2.py et ajouter le code suivant. Trois tâches sont générées avec trois gammes différentes et des valeurs d'attente dans principal() méthode. La première tâche calculera la somme de 5 à 500000 en attendant 3 secondes, la deuxième tâche calculera la somme de 2 à 300000 en attendant 2 secondes et la troisième tâche calculer la somme de 10 à 1000 en attendant 1 seconde. La tâche avec de faibles valeurs d'attente se terminera au début et la tâche avec une valeur d'attente élevée se terminera enfin.
importer asyncioSortir:
$ python3 async1.pyLa sortie montre que la tâche3 est terminée en premier car le temps d'attente de cette tâche n'était que de 1 seconde et que la tâche1 est terminée en dernier car le temps d'attente de cette tâche était de 3 secondes.
Exemple-3: Coroutines avec l'avenir
Cet exemple montre l'utilisation d'un futur objet de la bibliothèque Asyncio. Créer un nouveau fichier nommé async3.py et ajouter le code suivant. Deux tâches sont affectées à l'avenir dans cet exemple. voir le message La fonction est déclarée ici pour imprimer le message avant d'exécuter la coroutine et après avoir terminé l'exécution. La première tâche attendra 2 secondes et terminera le dernier. La deuxième tâche attendra 1 seconde et terminera d'abord.
importer asyncioSortir:
$ python3 async3.pyIl est montré dans la sortie que la tâche1 est démarrée en premier et terminée en dernier, et la tâche2 est démarrée plus tard mais terminée en premier pour un court temps d'attente.
Le concept de base de la programmation asynchrone à l'aide de la bibliothèque Asyncio de Python est expliqué ici. J'espère que vous pourrez écrire du code multithread dans Python après avoir pratiqué les exemples de ce tutoriel.