死锁的原因及解决方法 死锁的原因及解决办法

更新时间:2022-06-29 08:47:31作者:佚名

死锁的原因及解决方法 死锁的原因及解决办法

1、 死锁是由于两个或以上的线程互相持有对方需要的资源,导致这些线程处于等待状态,无法执行。

2、产生死锁的四个必要条件互斥性:线程对资源的占有是排他性的,一个资源只能被一个线程占有,直到释放。请求和保持条件:一个线程对请求被占有资源发生阻塞时,对已经获得的资源不释放。不剥夺:一个线程在释放资源之前,其他的线程无法剥夺占用。循环等待:发生死锁时,线程进入死循环,永久阻塞。

3、产生死锁的原因竞争不可抢占性资源,p1已经打开F1,想去打开F2,p2已经打开F2,想去打开F1,但是F1和F2都是不可抢占的,这是发生死锁。

4、竞争可消耗资源引起死锁,进程间通信,如果顺序不当,会产生死锁,比如p1发消息m1给p2,p1接收p3的消息m3,p2接收p1的m1,发m2给p3,p3,以此类推,如果进程之间是先发信息的那么可以完成通信,但是如果是先接收信息就会产生死锁。

5、进程推进顺序不当,进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生进程死锁。

6、避免死锁的方法破坏“请求和保持”条件想办法,让进程不要那么贪心,自己已经有了资源就不要去竞争那些不可抢占的资源。比如,让进程在申请资源时,一次性申请所有需要用到的资源,不要一次一次来申请,当申请的资源有一些没空,那就让线程等待。不过这个方法比较浪费资源,进程可能经常处于饥饿状态。还有一种方法是,要求进程在申请资源前,要释放自己拥有的资源。

7、破坏“不可抢占”条件,允许进程进行抢占,方法一:如果去抢资源,被拒绝,就释放自己的资源。方法二:操作系统允许抢,只要你优先级大,可以抢到。

8、破坏“循环等待”条件将系统中的所有资源统一编号,进程可在任何时刻提出资源申请,但所有申请必须按照资源的编号顺序(升序)提出

9、死锁的检测每个进程、每个资源制定唯一编号。设定一张资源分配表,记录各进程与占用资源之间的关系。设置一张进程等待表,记录各进程与要申请资源之间的关系。

10、死锁的解除抢占资源,从一个或多个进程中抢占足够数量的资源,分配给死锁进程,以解除死锁状态。

11、终止(或撤销)进程,终止(或撤销)系统中的一个或多个死锁进程,直至打破循环环路,使系统从死锁状态解脱出来.

本文标签: 死锁的原因及解决方法  

为您推荐

网易云音乐私人FM是什么意思 网易云音乐是什么软件

1、私人FM其实就是私人电台,这个私人FM只要调教的好了就会推送用户喜欢的音乐。网易云音乐私人FM是根据用户听歌习惯,进行智能推荐歌曲的一个功能。该功能依赖于平台的智能推荐算法,算法越强大,推荐的歌曲也就越符合用户喜好。

2023-01-29 10:39

信息技术是什么 关于信息技术的介绍

1、信息技术是指利用电子计算机和现代通讯手段实现获取信息、传递信息、储存信息、处理信息、显示信息、分配信息等的相关技术。 2、从广义上讲,凡是能扩展人类信息功能的技术,都是信息技术。随着微电子技术、计算机技术和通信技术

2023-01-29 03:39

wps通配符使用技巧 WPS中通配符怎么用

1、首先,我们使用键盘快捷键“ctrl+F”找到“查找与替换”的对话框,选择“替换(P)”选项。2、然后,点击下面的“高级搜索”,搜索(C)选择为“全部”并且同时打开下面的“使用通配符”选项。3、之后在查找内容栏里面输入

2023-01-27 10:39

理财和基金的区别 关于理财和基金的区别介绍

1、购买门槛,银行理财一般的购买门槛要求较高,有的在5万元以上,有的在上百万元以上;而基金的认购起点多在1000元左右,有的没有门槛限制。 2、安全性的区别,银行理财和基金虽然安全性都比较高,但是由于基金同时受基金法和

2023-01-26 00:08

结构性存款和理财产品的区别 关于结构性存款和理财产品的区别

1、本质的区别在于,结构性存款依旧是存款范围,而理财不属于存款的范围,也就是说理财是有本金亏损的风险在,而存款则一般不会有。2、结构性存款的门槛相对较高,一般五万元起投,也有部分银行推出一万起投的。而理财产品一般没有什么

2023-01-26 00:08

理财小知识 介绍 详解两个理财小知识

1、要分清理财和投资的区别:(1)投资追求的是投入于产出比,比如我们分析上市公司,经常用到ROE,其本质我们是在分析企业赚钱的能力,而理财侧重于财富的稳定增长。(2)投资的为了在最短时间内,让有限的资源产生最大的回报,而

2023-01-25 21:09