无题
- 1、互斥条件:一个资源每次只能被一个进程使用。
- 2、保持和请求条件:一个进程因请求资源而阻塞时,对已获得资源保持不放。
- 3、不可剥夺性:进程已获得资源,在未使用完成前,不能被剥夺。
- 4、循环等待条件(闭环):若干进程之间形成一种头尾相接的循环等待资源关系。
如何避免死锁?只要破坏其中任意一个条件,就可以避免死锁
一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 每天都不一样!