最简单的死锁情况是,线程T1持有锁L1并且申请获得锁L2,而另一个线程T2持有锁L2并且申请锁L1。

因为锁是唯一的,两个线程都在等待对方释放自己需要的锁,所以线程T1和T2永远被阻塞了。两个线程都会停留在阻塞状态,永远不会结束,这就导致了死锁。

alt