当某个线程中调用其它线程的join()方法时,调用的线程将被阻塞,直到被join()方法加入的线程执行完成后才会继续运行。
示例:
public class ThreadJoin {
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(new EmergencyThread(),"DeputyThread");
thread.start();
for(int i = 0 ;i < 50 ;i++) {
System.out.println(Thread.currentThread().getName()+" is outputting :"+i);
if(i == 10) {
System.out.println("DeputyThread jump a queue");
thread.join();
}
Thread.sleep(1000);
}
}
}
class EmergencyThread implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 0;i < 50;i++) {
System.out.println(Thread.currentThread().getName()+" is outputting :"+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}