1 死锁是由于两个或两个以上进程竞争资源导致的一种僵局。
死锁产生的必要条件
a 互斥关系,进程在对资源进行排他性控制,在满足释放条件之前资源不会被其他进程所使用
b 不剥夺条件,进程在使用完资源前不会被其他的进程强行剥夺
c 请求和保持条件,进程已经保持了一个资源,又去请求下一个资源,而下一个资源又被另一个进程所占有
d 循环等待,存在进程的资源循环等待连,每个进程所请求的资源被下一个资源所占有
2 预防和解除死锁
a 了解死锁的产生条件就可以预防死锁的发生,破坏其中上述四个条件中的每一个都可以解除死锁。最简单的
预防死锁的方式是都以同样的顺序来加锁。另外在进程的调度顺序,算法上进行优化可以尽量避免死锁的出现。