Cet article présente principalement l'utilisation des objets événement dans la programmation Python, et analyse le rôle et l'utilisation des objets événement dans la communication par thread sous forme d'exemples. Les amis dans le besoin peuvent s'y référer
Les exemples dans. cet article décrit l'utilisation de l'objet événement dans la programmation Python. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
Python fournit l'objet Event pour la communication entre les threads. Il s'agit d'un indicateur de signal défini par le thread. Si le bit d'indicateur de signal est faux, le le thread attend que le signal soit transmis par d'autres threads. Les threads sont définis sur true. Cela semble être exactement le contraire des événements Windows. L'objet Event implémente un mécanisme de communication de thread simple. Il fournit des signaux de configuration, d'effacement, d'attente, etc. pour réaliser la communication entre les threads.
1. Définir le signal
Utilisez la méthode set() de Event pour définir l'indicateur de signal à l'intérieur de l'objet Event sur true. L'objet Event fournit la méthode isSet() pour déterminer l'état de son indicateur de signal interne. Lorsque la méthode set() de l'objet événement est utilisée, la méthode isSet() renvoie true.
2. . Effacer le signal
Utilisez la méthode clear() de l'objet Event pour effacer l'indicateur de signal à l'intérieur de l'objet Event, c'est-à-dire le définir sur false lorsque la méthode clear de l'événement est utilisée. , la méthode isSet() renvoie false
3. Waiting
La méthode wait de l'objet Event s'exécutera rapidement et terminera le retour uniquement lorsque le signal interne est vrai. . Lorsque l'indicateur de signal interne de l'objet Event est faux, la méthode wait attend qu'il soit vrai avant de revenir.
Vous pouvez utiliser Event pour laisser le thread de travail se terminer correctement. L'exemple de code est le suivant :
# make thread exit nicely class MyThread9(threading.Thread): def __init__(self): threading.Thread.__init__(self) def run(self): global event while True: if event.isSet(): logging.warning(self.getName() + " is Running") time.sleep(2) else: logging.warning(self.getName() + " stopped") break; event = threading.Event() event.set() def Test9(): t1=[] for i in range(6): t1.append(MyThread9()) for i in t1: i.start() time.sleep(10) q =raw_input("Please input exit:") if q=="q": event.clear() if __name__=='__main__': Test9()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!