死锁

主要参考的文章点这里

死锁的必要条件

  1. 互斥:同一资源不能同时分配给两个进程。
  2. 不可抢占:不能抢占已经分配给一个进程的资源。
  3. 占有与等待:已经得到了某个资源的进程可以再请求新的资源。
  4. 环路等待:多个进程组成一条环路,该环路中的每个进程都在等待下一个进程所占有的资源。

死锁的处理方法

1. 鸵鸟策略

把头埋在沙子里,假装根本没发生问题。

因为解决死锁问题的代价很高,因此鸵鸟策略这种不采取任务措施的方案会获得更高的性能。
当发生死锁时不会对用户造成多大影响,或发生死锁的概率很低,可以采用鸵鸟策略。

大多数操作系统,包括 Unix,Linux 和 Windows,处理死锁问题的办法仅仅是忽略它。

2. 死锁预防

在程序运行之前,预防发生死锁。

3. 死锁避免

在程序运行时,避免发生死锁。

4. 死锁检测与恢复

不试图阻止死锁,而是当检测到死锁发生时,采取措施进行恢复。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、死锁的基本概念 1.1 死锁的定义 一组进程中,每个进程都无限等待被该组进程中另一进程所占用的资源,因而永远无...
    yjaal阅读 5,378评论 0 6
  • 资源 需要排他性使用的对象称为资源。 资源分为两类:可抢占的和不可抢占的。可抢占资源可以从拥有它的进程中抢占而不会...
    啊啊啊这个名字就好阅读 3,785评论 0 0
  • 1、竞态条件: 定义:竞态条件指的是一种特殊的情况,在这种情况下各个执行单元以一种没有逻辑的顺序执行动作,从而导致...
    Hughman阅读 5,132评论 0 7
  • 风,不急不慢地吹着 苍老的叶子 它想落就落 终于等到了 要亲吻大地的时刻 它想滚就滚 终于又回到母亲的怀中 一个劲...
    宝藏男孩儿阅读 1,865评论 0 2
  • app/build.gradle 报错 错误信息:Cannot set the value of read-onl...
    goodl阅读 4,336评论 0 1