Ich habe einen Thread, und ich brauche für das Ergebnis warten, wie folgt aus:Java Wait-For-Thread Frage
t1.start();
while (variableModifiedByMyThread == null) {
/* do nothing */
}
// "t1" set the value of "variableModifiedByMyThread"
Der obige Code funktioniert, aber nicht eine sehr schöne Lösung ...
Funktioniert dieser Code (wartet er auf den Thread "t1")?
t1.start();
try {
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// "t1" thread finished
Ihr erstes Codebeispiel ist hier nicht Thread-sicher. Es gibt keine Garantie dafür, dass der Hauptthread die Änderung an der Variable 'variableModifiedByMyThread' ohne Sperren/Synchronisation sieht. Dein Haupt-Thread könnte sich für immer drehen. – Jon