死锁的预防检测与修复
Posted 后端初学者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了死锁的预防检测与修复相关的知识,希望对你有一定的参考价值。
每天一篇好文章系列18年第154期
这篇文章介绍了进程中常见的一个概念死锁及死锁产生的必要条件及预防检测修复的常见策略,帮助我们更好的了解及理解java进程相关的一些基础概念。
1
1、什么是死锁
在计算机系统中有很多一次只能由一个进程使用的资源,如打印机,磁带机,一个文件的节点等。在多道程序设计环境中,若干进程往往要共享这类资源,而且一个进程所需要的资源不止一个。这样,就会出现若干进程竞争有限资源,又推进顺序不当,从而构成无限期循环等待的局面。这种状态就是死锁。系统发生死锁现象不仅浪费大量的系统资源,甚至导致整个系统崩溃,带来灾难性后果。所以,对于死锁问题在理论上和技术上都必须给予高度重视。
2
2、产生死锁的必要条件
互斥条件。即某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有。
不可抢占条件。进程所获得的资源在未使用完毕之前,资源申请者不能强行地从资源占有者手中夺取资源,而只能由该资源的占有者进程自行释放。
占有且申请条件。进程至少已经占有一个资源,但又申请新的资源;由于该资源已被另外进程占有,此时该进程阻塞;但是,它在等待新资源之时,仍继续占用已占有的资源。
循环等待条件。存在一个进程等待序列后续进程等待前一进程所占有的的某一资源,形成一个进程循环等待环。
3
3、死锁的预防
打破互斥条件。即允许进程同时访问某些资源。
打破不可抢占条件。即允许进程强行从占有者那里夺取某些资源。
打破占有且申请条件。可以实行资源预先分配策略。
打破循环等待条件,实行资源有序分配策略。
点评:其实java进程涉及的内容很多,本文从日常的例子中,浅显易懂的为大家解释了死锁的概念,有助于大家更好的理解进程相关部分的知识。毕竟,底层知识才是基础中的基础。
本文转自
CSDN
《什么是死锁以及死锁的预防、检测与修复》
相关阅读推荐
深入了解请点击下方阅读原文
以上是关于死锁的预防检测与修复的主要内容,如果未能解决你的问题,请参考以下文章
计算机操作系统 死锁 -- 产生死锁的必要条件死锁的处理方法(鸵鸟策略死锁检测与死锁恢复死锁预防死锁避免)
计算机操作系统 死锁 -- 产生死锁的必要条件死锁的处理方法(鸵鸟策略死锁检测与死锁恢复死锁预防死锁避免)