1 思维导图
2 什么是死锁
每个人都占有一个资源,同时又等待另一个人手里的资源,发生【死锁】。
在并发环境下,各种进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象。这就是死锁,死锁发生后,如果没有外力干干涉,这些进程将都无法向前推进。
3 死锁、饥饿、死循环的区别
死锁:各进程相互等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。
饥饿:由于长期得不到想要的进程,某进程无法向前推进的现象。
死循环:某进程执行过程中一直跳不出某个循环的现象。
4 死锁产生的四个必要条件
产生死锁必须同时满足以下四个条件,只要其中任一条件不成立,死锁就不会发生。
(1)互斥条件;
(2)不剥夺条件;
(3)请求和保持条件;
(4)循环等待条件。
5 什么时候会发生死锁
对不可剥夺资源的不合理分配,可能会导致死锁。
6 死锁的处理策略
(1)预防死锁;
(2)避免死锁;
(3)死锁的检测和解除。