2016-08-09 79 views
-1
class TestJoinMethod2 extends Thread{ 
public void run(){ 
    for(int i=1;i<=5;i++){ 
    try{ 
    Thread.sleep(500); 
    }catch(Exception e){System.out.println(e);} 
    System.out.println(Thread.currentThread().getName()); 
    } 
} 
public static void main(String args[]){ 
TestJoinMethod2 t1=new TestJoinMethod2(); 
TestJoinMethod2 t2=new TestJoinMethod2(); 
TestJoinMethod2 t3=new TestJoinMethod2(); 
t1.start(); 
try{ 
    t1.join(1500); 
}catch(Exception e){System.out.println(e);} 

t2.start(); 
t3.start(); 
} 

}
Der Ausgang I ist wie etwas bekommen unterwie funktioniert join (long millis) im folgenden Beispiel?

Thread-0 
Thread-0 
Thread-0 
Thread-1 
Thread-2 
Thread-0 
Thread-1 
Thread-2 
Thread-0 
Thread-1 
Thread-2 
Thread-1 
Thread-2 
Thread-1 
Thread-2 

Das spezielle Verfahren beitreten (long millis) beschreibt, dass es höchstens millis Millisekunden für den Thread zu sterben Waits. Nun ist meine Frage, wenn Thread-0 nach 1500 Millis (d. H. Nach den ersten 3 mal) stirbt, wie wird es danach ausgeführt?

+0

Können Sie Ihren Code besser formatieren, bitte? Es ist schwierig, der Verschachtelung zu folgen, besonders in 'TestJoinMethod2'. Ihre IDE kann es für Sie (und für uns) tun. –

+0

't.join()' _wait_ für 't' zu sterben. Es stirbt nicht _make_ 't'. 't.join()' tut überhaupt nichts, um 't' zu verarbeiten. –

Antwort