概要:锁是线程,锁对象执行完毕后,会调用自身对象上的notify(); Join 方法:本质上还是根据wait方法实现的.分析join源码发现join方法本身是使用了synchronized修饰符的.是加在方法上面的,意味着. 获取了当前对象的锁,然后继续发现里面的代码调用了wait.意味着我们先锁,再释放,等待唤醒,什么情况下被唤醒呢: 仔细查看join的源码,发现调用了wait(0),让程序等待,那么什么时间锁被释放呢?.因为是以线程对象作为锁的: After run() finishes,…