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

Y2J
Libérer: 2017-05-03 16:32:08
original
2285 Les gens l'ont consulté

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()
Copier après la connexion
.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!