Futurs simultanés python

Futurs simultanés python
«Semblable à la façon dont nous pouvons construire et utiliser le pool de threads, un pool de processus peut être formé et utilisé. Les pools de processus sont des collections de processus au ralenti et créés précédemment qui attendent d'être affectés aux tâches. Chaque fois que nous avons besoin d'effectuer plusieurs actions, l'utilisation d'un pool de processus est mieux pour construire des procédures innovantes pour chaque activité. Le simultanément.Futures est un composant trouvé dans la bibliothèque standard de Python. Pour donner aux programmeurs une interface élevée pour démarrer des processus simultanés, ce package a été introduit dans Python 3.2.

L'interface pour effectuer des tâches en utilisant un pool de threads ou de processus est fournie par cette couche d'encapsulation au-dessus des composants multitâches et multithreaux de Python. Le simultanément.Le module à terme de Python a proposé une classe abstraite «exécuteur» ainsi que ses sous-classes en béton qui sont utilisées à la place de la classe «exécuteur testamentaire». C'est parce que la classe «exécuteur testamentaire» ne peut pas être utilisée directement dans le code."

Exemple 01

Commençons par la première illustration de notre article. Nous vous montrerons l'utilisation de la sous-classe ProcessPoolExecutor de «Exécuteur» dans cette illustration, i.e., Recevez un flux de tâches pour terminer les emplois car il utilise plusieurs transformations. Ce flux alloue des travaux aux threads existants et prévoit leur exécution. Nous avons commencé ce programme Python avec l'utilisation du «simultanément.Module à terme »Important sa sous-classe ProcessPoolExecutor ici dans le code.

Après cela, nous avons importé la classe de sommeil d'un module temporel dans Python via l'utilisation de mots clés et d'importation. Nous définissons une fonction avec le nom «thread», prenant une variable de message comme un argument. Cette fonction a utilisé l'appel de la fonction pour dormir () Fonction de Python pour que l'exécution s'arrête pendant 2 secondes uniquement et renvoie le message à la fonction principale ().

Tandis que la définition de la fonction principale () a été lancée par l'appel à la fonction «processPoolExecutor» de.Module à terme pour créer un pool de 5 processus et enregistrer le résultat du pool dans un objet «exécuteur». Cet objet «exécuteur testamentaire» a été utilisé pour appeler la fonction «soumettre» pour créer 5 threads en leur transmettant un message «terminé» dans les paramètres. L'exécution de la fonction a tenté de dormir pendant 2 secondes et de renvoyer le message. Le résultat retourné serait enregistré dans le «futur» variable. Nous avons appelé la fonction «terminée» avec la variable d'objet future dans l'instruction «Imprimer» de la fonction Python pour afficher le résultat renvoyé, i.e., vrai ou faux.

Après cela, nous avons utilisé la fonction de sommeil pour que l'exécution du programme se poursuive après 5 secondes, puis vérifiez le résultat du pool d'exécuteur avec l'utilisation de la fonction terminée du futur objet. En fin de compte, l'objet «futur» a été utilisé pour appeler la fonction intégrée du résultat () de Python simultanément. Module à terme pour voir le résultat réel, je.e., Terminé à la fin.

Dans les dernières lignes, nous pouvons voir que la fonction principale () a été appelée ici. Enregistrons et exécutons simplement notre code pour voir le résultat réel pour utiliser le simultanément.Packages à terme dans les programmes Python. L'image ci-dessous comprend également le code de l'explication susmentionnée.

Après avoir exécuté ce programme dans Spyder 3, nous avons obtenu le résultat de l'outil Spyder3. Lorsque le pool d'exécuteur de 5 threads a été démarré, il appelle la fonction de thread et dort pendant 2 secondes, puis renvoie le message. Comme le processus de piscine ne se termine pas encore, donc «l'avenir.fait »revient faux, et nous avons affiché le« faux »résultat. L'exécution de ce programme dort pendant les 5 secondes suivantes, puis affiche le résultat de «Future.fait »encore.

Au total, 5 secondes sont passées et que le pool a été exécuté avec succès, il renvoie vrai dans ce cas. Enfin, le «futur.Résultat »Fonction affichait le message« terminé »pour le pool de 5 processus d'exécution complète. Ceci est le résultat attendu du code affiché ci-dessus.

Exemple 02

Jetons un coup d'œil à un autre exemple pour utiliser la sous-classe ProcessPoolExecutor de.Module à terme en python. Ainsi, nous avons importé la sous-classe ProcessPoolExecutor ici. Après cela, nous avons initialisé une liste «num» de 4 valeurs numériques différentes, i.e., 14, 7, 3, 15. Nous utilisons un total de 2 fonctions dans ce programme. L'exécution de la fonction principale () a commencé avec l'utilisation du gestionnaire de contexte ProcessPoolExecutor.

Le gestionnaire de contexte peut être utilisé comme deuxième méthode de création d'instances ProcessPoolExecutor. Il fonctionne de manière similaire à l'approche indiquée dans l'exemple précédent. La meilleure fonctionnalité du gestionnaire de contexte est la façon dont il est syntaxiquement attrayant. Donc, nous l'avons utilisé ici pour créer un pool de 3, je.e., Total des travailleurs. Avec cela, l'exécuteur exécuteur a utilisé la fonction MAP () pour passer un certain nombre de chaque élément d'une liste «num» comme paramètre à la fonction «Cube» pour la mappage. La fonction du cube renvoie le cube de chaque numéro transmis de la liste à l'utilisation de formules «n * n * n» et enregistrer le résultat renvoyé à la variable «R».

La boucle «For» est là pour utiliser le résultat «R» pour chaque élément pour afficher chaque valeur renvoyée de la fonction cube de la console via l'utilisation de la fonction «Imprimer» avec la variable «Val». Les 2 dernières lignes montrent l'utilisation de l'appel de fonction Main (). L'image ci-dessous comprend également le code de l'explication susmentionnée.

La sortie a montré le cube de la liste des 4 éléments de la liste «num». Ceci est le résultat attendu du code affiché ci-dessus.

Conclusion

Cet article concerne l'utilisation du «simultanément.Module à terme »de Python dans les programmes pour voir ses utilisations. Dans notre premier exemple, nous l'avons utilisé pour créer un pool de 5 processus et retourner le résultat avant et après l'utilisation de la fonction de sommeil dans le code. Après cela, nous avons utilisé un autre exemple pour consommer le «.Module à terme »et affichez des calculs mathématiques sur la console de notre outil Sypder Tool Python.