Ich bin etwas verwirrt mit Thread.sleep()
method. Wenn Thread.sleep()
eine statische Methode ist, wissen zwei Threads, was in den Ruhezustand versetzt wird. Zum Beispiel habe ich im folgenden Code zwei drei Threads
main
, t
und t1
. Ich rufe Thread.sleep()
immer an. Nicht t.sleep()
. Bedeutet es, dass Thread.sleep () den aktuellen Thread in den Ruhezustand versetzt? Das bedeutet, dass eine Thread-Instanz durch Aufrufen der statischen Methode in den Ruhezustand versetzt wird. Was ist, wenn t1 t
in den Ruhezustand versetzen möchte? das sollte nicht möglich sein richtig?
Bedeutet es, dass Thread.sleep () den aktuellen Thread in den Ruhezustand versetzt?
Ja. Nur der aktuelle Thread kann das tun.
Was ist, wenn t1 t schlafen will? das sollte nicht möglich sein richtig?
Richtig. Sie können ein volatile boolean
-Flag setzen, das dazu führt, dass ein anderer Thread Thread.sleep(...)
aufruft, aber ein anderer Thread kann keinen Thread in den Ruhezustand versetzen.
Es kann den aktuellen Thread von Thread.currentThread()
finden. Der aktuelle Thread kann sich nur in den Ruhezustand versetzen.
Tags und Links java multithreading sleep