当我运行以下代码时。始终首先打印Thread-0,然后并行运行Thread-1和Thread-2。
我想了解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();
}
}
感谢。
答案 0 :(得分:-1)
join()是一个阻塞调用,每当在线程上调用join时,调用线程将等待该线程完成。这里主线程将等待/阻塞直到t1线程完成。