Python Thread Join

Python Thread Join
Un thread doit utiliser la fonction «join ()» s'il veut attendre une autre méthode, ce qui nécessite que le deuxième thread attende jusqu'à ce que le premier soit terminé. À l'aide d'un objet thread, nous invoquons la méthode de join.

Comment implémenter Python Thread Join dans un script

Dans cet exemple, nous utiliserons «le fil de Python.join () Méthode »pour combiner deux threads. Un fil est un flux de traitement unique. Cela implique qu'il y aura deux événements simultanés dans votre programme. Cependant, la majorité des implémentations Python donnent juste l'impression que plusieurs fils fonctionnent simultanément. Un avantage clé de l'utilisation des threads est qu'une application multithread fonctionnera sur un système de processeur à un processeur tout en utilisant automatiquement un système multiprocesseur sans avoir besoin de recompilation. La programmation avec de nombreux threads séparés aide à implémenter des algorithmes parallèles.

La méthode join () de la classe de thread permet à un thread de retarder jusqu'à ce qu'un autre thread ait terminé l'exécution. Lorsque le fil.join () s'appelle, il s'assurera qu'il est arrêté avant même que le programme exécute les instructions suivantes: s'il s'agit d'une instance de thread dont le thread est actuellement en cours d'exécution.

Commençons à implémenter le script dans l'outil "Spyder" en implémentant le code. Un excellent outil pour compiler le code Python est Spyder. Spyder a une exécution dynamique du programme, qui vous offre de nouvelles compétences de dépannage. Il peut également être utilisé pour créer des analyses à l'aide d'informations et pour atteindre les objectifs de gestion des données. Pour démarrer le code, la première ligne importe le module «Threading». Une méthode avec l'identifiant «func1» est créée dans la ligne suivante. Les méthodes simples définies par l'utilisateur sont des techniques que vous pouvez utiliser pour organiser votre script dans le corps d'un programme. Ici, nous en concevons un.

Une fois défini, une fonction peut être utilisée de manière similaire à la façon dont les actions et les processus d'analyse de construction sont utilisés. Les variables sont envoyées par référence aux fonctions plutôt qu'en valeur. Les variables «dividende» et «diviseur» ont été fournies comme paramètres à «Func1» dans la parenthèse. L'instruction a ensuite été imprimée à l'aide de la fonction «print ()» sur la ligne suivante. La fonction print () affiche le message à l'écran ou un autre périphérique de sortie commun. L'objet sera transformé en une chaîne avant d'être affiché sur le moniteur et la phrase peut être une chaîne ou peut-être un autre élément. L'instruction «LET START» est transmise à la fonction «print ()», et une condition «IF» est appliquée pour déterminer si le dividende divisé par le diviseur est équivalent à «zéro», auquel cas imprimé «vrai», ou Que ce soit imprimé «faux."Le mot« fin »est ensuite passé lorsque nous invoquons à nouveau la méthode« print () ». Ensuite, dans la ligne suivante, nous utilisons «le filetage.Thread ”pour créer deux threads. À l'intérieur de sa parenthèse, nous exécutons la fonction tout en passant également les valeurs du dividende et du diviseur, qui sont «15» et «3», comme paramètres.

Une procédure similaire est ensuite répétée dans la ligne suivante, cette fois en exécutant la fonction avec un thread et en lui donnant les valeurs «21» et «2» pour le dividende et le diviseur comme arguments. Le premier thread est conservé dans la variable «Thread 1», tandis que le deuxième thread est conservé dans la variable initialisée «Thread 2». La ligne suivante utilise la méthode "start ()" et "Thread 1" pour commencer l'exécution du thread. Le système d'exploitation lancera le processus dans un nouveau thread dès qu'il le peut après la méthode "start ()". Ensuite, «join ()» et «thread 1» sont appelés. De la même manière, nous répétons le processus en appelant les fonctions «start ()» et «join ()» à l'aide de «Thread 2."

La technique «join ()» est utilisée par un fil pour attendre un autre fil. Par conséquent, le tout premier fil a été terminé. Commençons par imprimer en premier, et après cela, «vrai» est apparu parce que l'état du premier fil avait été satisfait. La réponse sera 0 si nous diviserons 15 par 3. Ainsi, il affichait «vrai» avant d'ajouter la déclaration imprimée «fin», ce qui signifie que le premier thread a pris fin. Le deuxième fil a ensuite été vu. Le deuxième fil s'est ensuite terminé après avoir affiché «faux» parce que les critères n'ont pas été respectés et les réponses aux nombres donnés n'étaient pas nuls.

Voici un autre exemple de filetage où les «fils.join () ”La fonction est utilisée ainsi que l'heure.Méthode sleep (). La première étape consiste à importer les deux bibliothèques Python. Parce que ce code utilise le «temps.Méthode sleep () ”, la première importation concerne le module« thread », tandis que la deuxième importation concerne le module« Time ». Le «temps python.La technique sleep () ”est utilisée pour attendre l'exécution d'un programme. La méthode Python «Sleep ()» peut être utilisée pour arrêter les performances d'un programme pendant une période spécifiée, déterminée en quelques secondes. Comprendre que le «temps python.La technique sleep () ”met fin au thread actuel, pas l'ensemble du programme.

Deux fonctions sont définies. La première fonction de ce script, «Func1», est utilisée pour stocker deux instructions d'impression à l'aide de la fonction «print ()». La première instruction que nous avons imprimée à l'aide de l'instruction PRINT est «Démarrage du thread 1». Ensuite, dans la ligne suivante, nous avons utilisé la fonction «Sleep ()» avec le module Time pour définir l'heure sur «20» secondes. Ensuite, nous avons appelé une autre instruction en utilisant la fonction print (), «Thread 1 est terminé."

Ensuite, nous créons une deuxième fonction, «Func2» et y faisons deux déclarations. La première déclaration que nous voulons imprimer est «Démarrage du fil 2»,. Dans la ligne suivante, nous avons réglé les intervalles de temps en secondes pour être «4» en utilisant le «temps.Méthode sleep () ”. Ensuite, nous utilisons la fonction «print ()» pour imprimer l'instruction «Thread 2 est terminé.«Après avoir construit la fonction, nous créons maintenant deux threads et utilisons le module de thread pour appeler la fonction, mais avant de le faire, nous affichons d'abord l'instruction« Démarrer ». La première fonction, «Func1», est maintenant appelée à l'aide d'un thread et stockée dans la variable nouvellement formée «T1»,. Après quoi, «Func2» est appelé à l'aide d'un thread et placé dans la variable «T2."

Ensuite, dans la ligne suivante, nous avons appelé la fonction "start ()" avec les threads "T1" et "T2" pour commencer son exécution. Avant d'imprimer la déclaration «fins», nous avons ensuite utilisé le «temps.Méthode sleep () ”pour définir la minuterie pendant deux secondes. Enfin, nous avons appelé la fonction «join ()» avec «T2» et utilisé le «temps.Méthode sleep () ”.

Maintenant, la sortie a d'abord affiché le début de l'instruction d'impression, puis, alors que nous avons appelé le FUNC1 à l'aide du thread, il est allé au FUNC1 et a imprimé l'instruction «Démarrage du thread 1». Alors que nous fixons le temps pour «20» avant d'imprimer la deuxième déclaration, le système s'est endormi pendant «20» secondes. Ensuite, il est arrivé au deuxième «Func2» a imprimé sa déclaration, «Démarrage du fil 2», ". Et nous avons utilisé «le temps.Sleep () ”Avant d'imprimer sa déclaration terminée, le système s'est endormi pendant« 4 »secondes. Parce que l'intervalle de temps entre les instructions «Func2» est plus petit que les déclarations de fin «Func1», il imprime désormais la déclaration de fin «Func2», qui est «Thread 2 est terminée» avant la déclaration de finition «Func1», qui est «Fil 1 est terminé ».

Conclusion

Cet article a utilisé deux threads pour discuter du «fil Python.join () ”Technique. Dans l'exemple susmentionné, nous avons construit une fonction, appelée en utilisant la fonction avec le module «thread», et utilisé les threads pour invoquer la méthode «join ()». Cette procédure «join ()» attend la fin du premier fil avant de commencer l'exécution du deuxième thread. Dans l'exemple ci-dessus, nous avons également utilisé «Temps.Sleep () ”pour retarder l'exécution des déclarations.