Maison  >  Article  >  développement back-end  >  Explication détaillée d'exemples d'utilisation d'objets événementiels en Python

Explication détaillée d'exemples d'utilisation d'objets événementiels en Python

Y2J
Y2Joriginal
2017-05-03 16:32:082327parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn