首先看下join方法的底层代码,大概意思是哪个线程1中调用线程2.join(),则使用wait阻塞这个线程1,唤醒需要用到线程2的锁,因此线程1 需要等待到线程2执行完释放锁后才能被唤醒继续执行。 下面演示一个例子