Thread Events?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Hallo,

ich starte zwei Threads, sagen wir mal Thread A und B. Nun möchte ich auf einen Event in Thread A reagieren, also innerhalb von Thread B.

Sprich:

Thread A setzt Event X

Thread B frägt per if Abfrage, if Event X isSet(), dann mach dies und das...

irgendwie bekomm ich das net hin...kann mir jemand auf die Sprünge helfen?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ein typisches Beispiel sieht so aus:

Code: Alles auswählen

import threading

event = threading.Event()

class SetThread(threading.Thread):
    def run(self):
        print "do something"
        #done
        event.set()

class WaitThread(threading.Thread):
    def run(self):
        #wait for SetThread
        event.wait()
        print "event is set"

t1 = SetThread()
t2 = WaitThread()
t2.start()
t1.start()

t2.join()
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

danke!
mein Fehler war, dass ich die Events immer innerhalb eines Thread definiert hatte und mit dem anderen Thread darauf zugreifen wollte :oops:
BlackJack

Das klingt nicht nach einem Fehler. Wo das `Event`-Objekt erzeugt und gespeichert wird, sollte keinen Unterschied machen.
Antworten