當我運行下面的代碼。總是首先打印線程0,然後線程1和線程2並行運行。Java t.join()阻塞方法調用
我想了解thread.join調用是否阻止調用? 也想知道在這種情況下主線程會發生什麼。
沒有在文檔中的任何地方,連接被稱爲阻塞呼叫。
class TestMultithreadJoin{
public static void main(String[] args) throws InterruptedException{
Thread t1 = new Thread(new Runnable(){
public void run(){
for(int i = 0; i<=100;i++){
System.out.println(" Name :"+Thread.currentThread().getName());
}
}
});
Thread t2 = new Thread(new Runnable(){
public void run(){
for(int i = 0; i<=100;i++){
System.out.println(" Name :"+Thread.currentThread().getName());
}
}
});
t1.start();
t1.join();
t2.start();
Thread t3 = new Thread(new Runnable(){
public void run(){
for(int i = 0; i<=100;i++){
System.out.println(" Name :"+Thread.currentThread().getName());
}
}
});
t3.start();
}
}
謝謝。
您可以在文檔中的答案[主題#join()方法(https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html #join--) – matoni
您是否考慮過查閱文檔? – EJP
你認爲「等待這個線程死亡」是什麼意思? – shmosel