Frage zur Beendung eines Thread-Programms
Verfasst: Donnerstag 18. Oktober 2007, 13:58
Hey Leute,
Ich habe ein Programm was 5 Threads startet, welche ihre Daten aus einer Queue lesen.
Das klappt soweit, aber das Problem ist, dass das Programm sich nicht beendet. Ist ja auch klar, denn es fragt immer weiter ob noch Daten in der Queue sind!
Mein Code Teil sieht so aus:
Leider wird das "exit(1)" nie aufgerufen.
Hier würde außerdem natürlich der Fehler passieren, dass sich das Programm beendet, sobald die Queue leer ist. Aber es wird nicht überprüft ob alle Threads wirklich fertig sind. Es kann also sein, dass noch 4 Threads arbeiten wenn das Programm beendet wird.
Wie beende ich die Threads nun richtig?
so long,
Samy
Ich habe ein Programm was 5 Threads startet, welche ihre Daten aus einer Queue lesen.
Das klappt soweit, aber das Problem ist, dass das Programm sich nicht beendet. Ist ja auch klar, denn es fragt immer weiter ob noch Daten in der Queue sind!
Mein Code Teil sieht so aus:
Code: Alles auswählen
def run (self):
while True:
data = userPool.get()
if data != None:
self.ProcessUser(data)
else:
exit(1)
Hier würde außerdem natürlich der Fehler passieren, dass sich das Programm beendet, sobald die Queue leer ist. Aber es wird nicht überprüft ob alle Threads wirklich fertig sind. Es kann also sein, dass noch 4 Threads arbeiten wenn das Programm beendet wird.
Wie beende ich die Threads nun richtig?
so long,
Samy