ich beschäftige mich zurzeit mit Python-Threads und kriege trotz tagelanger Experimente einen schlafenden Thread nicht mehr geweckt!
Ich würde mich riesig freuen, wenn mir einer von Euch weiterhelfen könnte!
Erklärung zum Code:
2 Threads werden gestartet. Der 1. Thread legt sich schlafen (Methode sleep()), der 2. soll ihn wieder aufwecken (Methode wake()).
Code: Alles auswählen
import threading
threadanzahl=2
counter = 0
class Counter(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.Condition = threading.Condition()
def run(self):
global counter
self.lock.acquire()
counter += 1
if counter == 1:
Counter.sleep(self)
else:
Counter.wake(self)
self.lock.release()
def sleep(self):
self.Condition.acquire()
print "gehe schlafen"
self.Condition.wait()
print "bin wider wach"
self.Condition.release()
def wake(self):
self.Condition.acquire()
print "wecke auf"
self.Condition.notify()
self.Condition.release()
thread = {}
for i in range(1,threadanzahl+1):
thread[i] = Counter()
thread[i].start()
for i in range(1,threadanzahl+1):
thread[i].join()
print "done"