Thread Join Waits für immer: Join Hets oder wartet für immer
-
26-12-2019 - |
Frage
Ich habe einen Code wie unten
generasacodicetagpre.Ich versuche, den Prozess anmutig zu verlassen.Das Problem ist jedoch sehr selten, dass ich dieses Programm bei Join hängt.
Thread ist während der Schleife immer noch aktiv.M_Alive Value lautet "True" auch nach dem Anruf der Stopp (in Haltestelle auf false).M_Alive wird als volatil deklariert.
Lösung
fand den Grund, warum M_Alive wahr ist.
es ist, weil, wenn wir einen Thread erstellen (im Allgemeinen aufgerufene "Start" -Funktion) aufgerufen, in einem anderen Thread, und es setzte seine Ausführung fort.Zum Zeitpunkt "Start" abgeschlossen und Anrufstop ist noch kein neuer Thread geplant.Also "run" nicht gestartet.Wenn der spätere Auslauf startet, setzen Sie den Wert von M_Alive von FALSE wieder auf Richtige zurück ...