美文网首页
如何理解产生死锁的4个必要条件

如何理解产生死锁的4个必要条件

作者: sakuragi | 来源:发表于2019-08-08 01:07 被阅读0次

对于永久性资源,产生死锁有四个必要条件:

  1. 互斥条件。一个资源只能被一个进程占用
  2. 不可剥夺条件。某个进程占用了资源,就只能他自己去释放。
  3. 请求和保持条件。某个进程之前申请了资源,我还想再申请资源,之前的资源还是我占用着,别人别想动。除非我自己不想用了,释放掉。
  4. 循环等待条件。一定会有一个环互相等待。

什么是必要条件

必要条件是数学中的一种关系形式。如果没有A,则必然没有B;如果有A而未必有B,则A就是B的必要条件,记作B→A,读作“B含于A”。数学上简单来说就是如果由结果B能推导出条件A,我们就说A是B的必要条件。

可能我一直犯了一个错误,把必要条件理解成了数学中的必要条件,其实这里更像是逻辑学的一些关系形式。这里或多或少还是有一定区别的。

数学

有命题p、q,如果p推出q,则p是q的充分条件,q是p的必要条件;如果p推出q且q推出p,则p是q的充分必要条件,简称充要条件

逻辑学

  • 必要条件
    定义:如果没有事物情况A,则必然没有事物情况B;如果有事物情况B就一定有事物情况A,A就是B的必要条件,应注意必要条件不是必要不充分条件的简称。
  • 充分条件
    定义:如果有事物情况A,则必然有事物情况B;如果没有事物情况A而未必没有事物情况B,A就是B的充分而不必要条件,简称充分条件。紧跟在“如果”之后 。
    必要条件是逻辑学在研究假言命题假言推理时引出的。

我们按照逻辑学的定义来简述 :
产生死锁的4个必要条件是1.互斥2.不可剥夺3.请求和保持4.循环等待。

逻辑学的定义

如果没有事物情况A,则必然没有事物情况B;如果有事物情况B就一定有事物情况A,A就是B的必要条件,应注意必要条件不是必要不充分条件的简称。

如果没有这个4个条件(1.互斥2.不可剥夺3.请求和保持4.循环等待),则必然不会产生死锁
如果产生死锁,这一定有这个4个条件(1.互斥2.不可剥夺3.请求和保持4.循环等待)并且这4个条件都是要满足的。并不是满足其中一个。
4个条件是死锁产生的必要条件。不是充分条件,充分条件的意思是如果有这个4个条件,就一定会死锁,显示不是,要产生死锁肯定还有其他条件满足才行。但是必要条件的意思是,只要产生死锁,就会有这4种情况出现,如果有一条情况不满足,那么肯定不会产生死锁。所以我们经常预防死锁就是通过解除这4个必要条件来实现。

北京大学出版社 陈向群 的 《操作系统教程》第三版 我怎么感觉这句话不严谨呢?


image.jpeg

我觉得应该改成 只要系统发生死锁,则以上四个条件都必须成立。

相关文章

  • java并发--java死锁

    本篇结构: 前言 什么是死锁 产生死锁的必要条件 死锁的代码示例 死锁排查 如何避免死锁 总结 一、前言 今天被问...

  • Java死锁

    什么是死锁 死锁检测 产生死锁的四个必要条件 如何避免死锁 死锁 死锁,指两个或多个线程之间,由于互相持有对方需要...

  • 线程池系列(5)记一次JDK线程池死锁

    什么?JDK线程池还会死锁? 1. 死锁产生的必要条件 产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能...

  • 揭秘:“死锁”四个必要条件的合理解释

    《“死锁”四个必要条件的合理解释》分为三个部分: 【1】“死锁”的含义 【2】“死锁”的原因及四个必要条件的合理解...

  • “死锁”四个必要条件的合理解释

    《“死锁”四个必要条件的合理解释》分为三个部分: 【1】“死锁”的含义 【2】“死锁”的原因及四个必要条件的合理解...

  • java多线程笔记

    产生死锁的四个必要条件 处理死锁的基本方法 死锁预防 死锁避免 死锁检测 死锁解除 https://blog.cs...

  • 死锁

    死锁 产生死锁的必要条件 产生死锁的必要条件互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅...

  • Java锁(悲观、乐观锁、CAS原子操作)

    Java死锁发生的必要条件 Java死锁产生的四个必要条件: 互斥使用,即当一个线程占用了资源,其他线程不能使用。...

  • 如何理解产生死锁的4个必要条件

    对于永久性资源,产生死锁有四个必要条件: 互斥条件。一个资源只能被一个进程占用 不可剥夺条件。某个进程占用了资源,...

  • 解决死锁的4种基本方法(值得收藏)

    解决死锁的4种基本方法(文末有惊喜) 1、预防死锁:通过设置一些限制条件,去破坏产生死锁的必要条件 2、避免死锁:...

网友评论

      本文标题:如何理解产生死锁的4个必要条件

      本文链接:https://www.haomeiwen.com/subject/iygzdctx.html