如果在线程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);
        }

    }
}