Ist es möglich, einen laufenden Thread zu beenden, ohne irgendwelche Flags/Semaphoren/etc. zu setzen/zu überprüfen?
Antworten
Zu viele Anzeigen?
DoXiD
Punkte
285
Dies ist eine schlechte Antwort, siehe die Kommentare
Und so geht's:
from threading import *
...
for thread in enumerate():
if thread.isAlive():
try:
thread._Thread__stop()
except:
print(str(thread.getName()) + ' could not be terminated'))
Warten Sie ein paar Sekunden, dann sollte Ihr Thread gestoppt werden. Prüfen Sie auch die thread._Thread__delete()
Methode.
Ich würde empfehlen, eine thread.quit()
Methode für Bequemlichkeit. Wenn Sie zum Beispiel einen Socket in Ihrem Thread haben, würde ich empfehlen, eine quit()
Methode in Ihrer Socket-Handle-Klasse, beenden Sie den Socket und führen Sie dann eine thread._Thread__stop()
im Inneren deines quit()
.
David Lador
Punkte
19
- See previous answers
- Weitere Antworten anzeigen