[PythonCookBook] [Concurrent] Méthode pour juger si un thread est démarré ou non

problème

Jugez s'il est réellement en cours d'exécution après le chargement du processus

solution

Afin de déterminer si le thread a atteint un certain point dans son processus et d'effectuer les opérations suivantes en conséquence, nous utilisons l'objet Event dans la bibliothèque de threads.

Exemple simple

Dans cette expérience, «le compte à rebours est en cours» apparaîtra toujours après le «démarrage du compte à rebours».

from threading import Thread, Event
import time

def countdown(n, started_evt):
    print('countdown starting')
    started_evt.set()
    while n > 0:
        print('T-minus', n)
        n -= 1
        time.sleep(2)

started_evt = Event()

print('Launching countdown')

t = Thread(target=countdown, args=(10, started_evt))
t.start()

started_evt.wait()
print('countdown is running')

Résultats de la

Puisque 'compte à rebours est en cours d'exécution' est après started_evt.wait (), il est nécessaire d'attendre le moment où le processus commence à s'exécuter avant que ce caractère ne soit imprimé, c'est-à-dire que cette information d'état est un signe pour juger si le le processus est déjà en cours d'exécution. Il s'agit en fait de l'indicateur de début du thread principal en attente du thread de compte à rebours, et cet indicateur de début est défini dans la fonction de compte à rebours via started_evt.set ().
Insérez la description de l'image ici

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_33868661/article/details/115371919
conseillé
Classement