一 概述
“死锁”就是两个或两个以上的线程在执行过程中,互相持有对方所需要的资源,导致这些线程处于等待状态,无法继续执行。若无外力作用,它们都将无法继续执行下去,就进入了“永久”阻塞的状态。
二 形成死锁的条件
1. 互斥,共享的资源source1和source2同一时间只能被一个线程占用。
2. 线程1在尝试占有source2的锁的同时不会释放占有source1的锁。
3. 其他线程无法抢占线程1所持有的锁,即占有的资源。
4. 线程1等待其他线程占有的资源,其他线程等待线程1占有的资源,循环等待。
待续......