// 加锁当前线程对象
public final synchronized void join() throws InterruptedException {
// 条件不满足,继续等待
while (isAlive()) {
wait(0);
} /
/ 条件符合,方法返回
}
当前线程调用join方法,会等待join方法完成才继续下面的程序。原理就是得到了锁,然后调用wait方法,等待唤醒
在等待的线程中,并没有notify这个语句,那怎么唤醒的呢?其实这个是虚拟机当线程终止时,会调用线程自身的notifyAll()方法,会通知所有等待在该线程对象上的线程。