一个对象可以有 synchronized 方法或其他形式的加锁机制来防止别的任务在互斥还没有释放的时候就访问这个对象. 死锁 任务有可能变成阻塞状态,所以就可能发生这样的情况:某个任务在等待另一个任务,而后者又在等待别的任务,这样一直下去,直到这个链条上的任务又在等待第一个任务释放锁.这就形成了一个相互等待的循环,没有那个线程能够继续.这被称之为死锁. 我们真正需要解决的问题是程序看起来可能工作良好,但是具有潜在的死锁风险.这时,死锁可能发生,而事先却没有任何征兆,所以缺陷会潜伏在你的程序里,直…