Event

Lõimedevaheliseks wait/notify suhtluseks. Sündmust ootavad lõimed magavad kuni üks lõim teavitab sündmuse toimumisest. Vaikimisi väärtus False, sest sündmust pole veel toimunud.

../_images/event.png

Meetodid

  • is_set() - True, kui sündmus toimunud.

  • set() – sündmus toimus ja väärtus nüüd True, lisaks äratatakse kõik ootavad lõimed.

  • clear() – sündmus väärtustatakse mitte toimunuks (False). Uued wait() kutsunud lõimed ootavad set() kutset.

  • wait(timeout=None) – lõimed pannakse ootama, kuni sündmus toimub (True) või seatud ajapiir läbi saab.

Lõime ootab kuni toit valmis:

event = threading.Event()

def waiter():
    print("Waiting food to be done")
    event.wait()
    print("Food is ready to be served!")

def Chef():
    time.sleep(2)
    event.set()

t1 = threading.Thread(target=waiter)
t2 = threading.Thread(target=setter)

t1.start()
t2.start()
t1.join()
t2.join()