死锁破坏小结

总所周知,死锁拥有以下四个必要条件,我们可以从这四个方面入手

1

互斥条件:申请的资源是临界资源,只能被一个进程占有

这一般没有办法破解,因为资源不可能无限给每个进程

2

请求与保持条件:进程持续请求资源,并且不主动释放手中的资源。

我们可以让进程在获取不到全部资源时,主动自我阻塞。如果判断无法获取直接进行自我阻塞其实太过低效,往往可以尝试一段时间后依然无法获取全部再释放资源

3

不可剥夺条件:进程拥有的资源不能被其他进程抢走

我们可以为进程设置优先级,优先级高的进程在长时间获取不到足够资源会主动抢占资源

4

循环等待条件: 若干进程间形成首尾相接循环等待资源的关系。

我们可以让一些进程从“顺序”申请资源,另一些进程“逆序”申请资源

举个栗子
哲学家问题中,出现死锁时,必定是每个人同时拥有左手边或右手边的筷子,如果有人先拿左手的筷子,再拿右手的,而另一些人先拿右手的,再拿左手的就不会出问题了
逻辑解读
如果造成了死锁,那么肯定是大家都拿了一边筷子,但是有些人是先拿另一边的,那就前后矛盾了,如果有人先拿了另一边又拿了这一边,那他资源就够了,破坏了死锁第二必要条件,那就不会造成死锁了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值