死锁的四个必要条件和解决办法

什么是死锁?

多个并发进程因争夺系统资源而产生相互等待的现象。

本质原因:系统资源有限、进程的推行顺序不合理

死锁产生的4个必要条件

互斥: 某种资源一次只允许一个进程访问,即该资源一旦分配给某个进程,其他进程就不能再访问,直到该进程访问结束。

占有且等待: 一个进程本身占有资源(一种或多种),同时还有资源未得到满足,正在等待其他进程释放该资源。

不可抢占: 别人已经占有了某项资源,你不能因为自己也需要该资源,就去把别人的资源抢过来。

循环等待: 存在一个进程,使得每个进程都占有下一个进程所需的至少一种资源

当以上四个条件均满足必然会造成死锁,发生死锁的进程无法进行下去,它们所持有的资源也无法释放。这样会导致CPU的吞吐量下降。所以死锁情况是会浪费系统资源和影响计算机的使用性能的。

避免死锁的方法

posted @   金鳞踏雨  阅读(87)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-04-13 单例设计模式Singleton Pattern(1)
2021-04-13 史上最全的Java设计模式(更新中...)
点击右上角即可分享
微信分享提示