Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung von Beispielen für die Verwendung von Ereignisobjekten in Python

Detaillierte Erläuterung von Beispielen für die Verwendung von Ereignisobjekten in Python

Y2J
Y2JOriginal
2017-05-03 16:32:082328Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von Ereignisobjekten in der Python-Programmierung vorgestellt und die Rolle und Verwendung von Ereignisobjekten in der Thread-Kommunikation anhand von Beispielen analysiert.

Die Beispiele in In diesem Artikel wird die Verwendung von Ereignisobjekten in der Python-Programmierung beschrieben. Teilen Sie es als Referenz mit allen:

Python stellt das Ereignisobjekt für die Kommunikation zwischen Threads bereit. Es handelt sich um ein vom Thread gesetztes Signalflag Thread wartet, bis das Signal von anderen Threads weitergegeben wird. Dies scheint genau das Gegenteil von Windows-Ereignissen zu sein. Das Event-Objekt implementiert einen einfachen Thread-Kommunikationsmechanismus. Es stellt Einstellungssignale, Löschsignale, Wartesignale usw. bereit, um die Kommunikation zwischen Threads zu realisieren.

1. Signal setzen

Verwenden Sie die set()-Methode von Event, um das Signal-Flag im Event-Objekt auf true zu setzen. Das Event-Objekt stellt die Methode isSet() bereit, um den Status seines internen Signalflags zu bestimmen. Wenn die Methode set() des Event-Objekts verwendet wird, gibt die Methode isSet() true zurück.

2 . Löschen Sie das Signal

Verwenden Sie die Clear()-Methode des Event-Objekts, um das Signal-Flag im Event-Objekt zu löschen, d. h. auf „false“ zu setzen, wenn die Clear-Methode des Events verwendet wird , die isSet()-Methode gibt false zurück

Warten

Die Wartemethode des Event-Objekts wird schnell ausgeführt und schließt die Rückgabe nur ab, wenn das interne Signal wahr ist . Wenn das interne Signalflag des Event-Objekts falsch ist, wartet die Wartemethode, bis es wahr ist, bevor sie zurückkehrt.

Sie können Event verwenden, um den Arbeitsthread ordnungsgemäß beenden zu können. Der Beispielcode lautet wie folgt:

# 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()

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für die Verwendung von Ereignisobjekten in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn