如果在线程a中调用了线程b的join()方法,此时线程a就会进入阻塞状态,直到线程b完全执行完以后,线程a才会结束阻塞状态,由于join方法中会抛出异常,所以我们还需要try-catch来捕捉处理异常
class MyThread extends Thread{
@Override
public void run() {
for(int i = 1;i <= 10;i++){
System.out.println(getName() + i);
}
}
}
public class Test{
public static void main(String[] args) {
Thread.currentThread().setName("主线程:");
MyThread t1 = new MyThread();
t1.setName("子线程:");
t1.start();
for(int i = 1;i <= 10;i++){
if(i == 5){
try {
//在主线程中调用了t1的join()方法,主线程进入阻塞状态,直到t1执行完毕后,才继续执行主线程
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName() + i);
}
}
}