Wenn Thread.sleep statisch ist, wie weiß der einzelne Thread, dass er in den Ruhezustand versetzt wird?

8

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?

%Vor%     
brain storm 28.02.2014, 19:34
quelle

2 Antworten

9
  

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.

%Vor%     
Gray 28.02.2014, 19:36
quelle
0

Es kann den aktuellen Thread von Thread.currentThread() finden. Der aktuelle Thread kann sich nur in den Ruhezustand versetzen.

    
fastcodejava 28.02.2014 19:36
quelle

Tags und Links