Threading en Python: découvrez comment travailler avec des threads en Python

Cet article sur Threading en Python vous dira quels sont les threads, leurs types, comment les démarrer et les utiliser de la meilleure façon possible

Aujourd'hui, est l'un des langages de programmation les plus appréciés au monde. Depuis sa création dans les années 1990, il a attiré un énorme succès et des passionnés et des codeurs qui travaillent tous les jours pour améliorer ce langage de programmation. Parmi les nombreuses fonctionnalités intégrées à l'écosystème Python, celle qui se démarque le plus est Threading. Par conséquent, dans cet article, nous parlerons de Threading en Python, de la façon dont vous pouvez l'utiliser ainsi que de ses avantages et inconvénients.



Les pointeurs suivants seront traités dans cet article,



Commençons

Threading en Python

Qu'est-ce qu'un thread en Python?

Un thread en Python peut simplement être défini comme un flux d'exécution distinct. Ce que cela signifie simplement que dans votre programme, deux processus différents seront exécutés en même temps. Un aspect intéressant du threading en Python est le fait qu'après la version 3, plusieurs threads en Python ne sont pas exécutés en même temps, mais ils semblent simplement le faire.



Bien que ce soit une sensation incroyable d'exécuter deux processus différents en même temps, il faut comprendre que la version actuelle de Python 3 et supérieur est codée de telle manière que seul le processus peut être exécuté à un moment donné. Si vous avez toutefois besoin de deux processus ou plus ensemble en même temps dans CPython, vous devez également coder une partie de votre code dans d'autres langages, tels que C, C ++ et Java, puis les exécuter via le multi-threading en Python.

L'un des avantages les plus connus du threading en Python est sa capacité à apporter un gain de clarté de conception.

Avant cela, nous avons une idée de Threading en Python, voyons comment démarrer un thread,



Démarrer un thread en Python

Maintenant que vous êtes habitué à la définition d'un thread en Python, examinons un exemple sur la façon dont vous pouvez créer votre propre thread en Python. Afin de créer un thread en Python, vous devez d'abord importer la bibliothèque de threads, puis lui demander de démarrer () comme indiqué dans l'exemple ci-dessous:

import journalisation import thread import time def thread_function (nom): logging.info ('Thread% s: démarrage', nom) time.sleep (2) logging.info ('Thread% s: finish', name) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: avant de créer le thread') x = threading.Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: avant d'exécuter thread') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: attendez la fin du thread ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: tout est fait ')

Production

Sortie - Threading en Python - Edureka

Lorsque vous exécutez un thread en Python, vous le transmettez en tant que fonction contenant une liste d'arguments dont il a besoin pour s'exécuter. Dans l'exemple partagé ci-dessus, vous demandez à Python d'exécuter le thread, thread_function () et de le passer à 1 en tant qu'argument.

Lorsque vous exécutez le programme ci-dessus, la sortie ressemblera à ceci.

La partie suivante de cet article sur «Threading en Python» nous permet de voir ce que sont les threads démons,

Que sont les threads de démon?

Dans la terminologie technique, le démon peut être défini comme un processus qui s'exécute principalement en arrière-plan. Cependant, en Python, un thread démon a une signification très spécifique. En Python, un thread démon s'arrêtera au moment où le programme s'est arrêté, bien que dans d'autres langages de programmation, il continue de fonctionner en arrière-plan. Si dans un certain programme, un thread n'est pas programmé comme étant un thread démon, alors l'interpréteur attendra qu'il termine son opération et arrête alors seulement l'interpréteur.

Pour mieux comprendre ce concept, jetez un œil à l'exemple ci-dessus. Dans l'avant-dernière ligne, le programme attend quelques secondes après avoir terminé toutes ses tâches. C'est parce qu'il attend que le thread non démoniaque termine son opération et quitte ensuite l'interface. Une fois que le thread a terminé son opération, seul le programme se termine.

Maintenant, modifions le programme ci-dessus et voyons ce qui se passe, si nous insérons un thread démon dans le code.

Nouveau code: x = threading.Thread (target = thread_function, args = (1,), daemon = True)

Lorsque vous exécutez le programme ci-dessus avec les modifications apportées, il ressemblera à quelque chose comme ceci.

La différence entre ces deux sorties est que la dernière ligne est absente de la dernière. La fonction thread_function () n'a pas eu la chance de se terminer, car nous avons inséré un thread démon et comme il a bientôt atteint la fin, il a quitté le programme.

Rejoindre un fil

Maintenant que vous avez appris le concept de création d'un thread en Python, ainsi que le concept d'un thread démoniaque, découvrons comment vous pouvez joindre des threads en Python.

En utilisant la fonction join () en Python, vous pouvez joindre deux threads différents et demander à l'un d'attendre l'autre jusqu'à ce qu'il termine son exécution. Cette fonctionnalité sera souvent utile lorsque vous codez de grosses applications et que vous avez besoin que tous les processus soient exécutés dans un ordre particulier

La dernière partie de cet article sur «Threading en Python» vous montrera les multiples threads fonctionnels,

Travailler avec plusieurs threads

Dans les exemples ci-dessus, nous avons expliqué comment vous pouvez travailler avec deux threads à la fois. Mais que faire si dans une certaine situation, vous devez travailler avec plusieurs threads en même temps. Pour une meilleure compréhension de la situation, regardez l'exemple ci-dessous.

import journalisation import thread import time def thread_function (nom): logging.info ('Thread% s: démarrage', nom) time.sleep (2) logging.info ('Thread% s: finish', name) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') threads = liste ( ) pour l'index de la plage (3): logging.info ('Main & ampampampnbsp & ampampampnbsp: créer et démarrer le thread% d.', index) x = threading.Thread (target = thread_function, args = (index,)) threads.append (x ) x.start () pour index, thread dans enumerate (threads): logging.info ('Principal & ampampampnbsp & ampampampnbsp: avant de rejoindre le thread% d.', index) thread.join () logging.info ('Principal & ampampampnbsp & ampampampnbsp: thread% d done ', index)

Production

Dans le programme ci-dessus, nous avons suivi la même procédure d'importation de la bibliothèque de threads, de démarrage du thread, de création de plusieurs threads, puis d'utilisation de la fonction join () pour combiner le tout et être exécuté dans un ordre particulier.

Lorsque vous exécutez le programme ci-dessus, le résultat ressemblera à ceci.

Conclusion

C'est l'une des fonctionnalités les plus pratiques de Python. En l'utilisant correctement, vous pouvez rendre l'ensemble de votre processus de codage beaucoup plus simple et efficace. À partir de l'article ci-dessus, nous espérons que vous avez appris les bases du threading et que vous continuerez à l'utiliser dans votre programmation quotidienne.

comment alerter en javascript

Alors ça y est les gars j'espère que vous avez aimé cet article.

Pour acquérir des connaissances approfondies sur Python et ses différentes applications, vous pouvez pour une formation en ligne en direct avec une assistance 24/7 et un accès à vie.

Vous avez une question pour nous? Mentionnez-les dans la section commentaires de cet article et nous vous recontacterons.