1. 互斥条件
同一个资源同时只能被一个线程使用
2.不剥夺
一个线程获得的资源,在其使用完毕之前不能被强行剥脱
3.循环与等待
若干进程之间形成了一种头尾相接的循环等待资源关系
(两个线程互相持有对方需要的资源,A线程需要资源a
,但是此时a被B线程持有,而A线程又持有B线程所需要的资源b
,互相僵持)
4.请求与保持
当一个线程因为请求资源而阻塞时,其他线程不释放资源
避免死锁
避免死锁就是破坏上述必要条件条件
破坏任何一个必要条件,就可以阻止事件的发生。这是必要条件的重要性质:它们是事件发生的必备前提,一旦缺少任何一个,事件便无法实现。
----GPT