死锁以及银行家算法的一个简单理解。

关于进程死锁的一个简单直白的理解。

 

比如说。

我要完成一个任务A。

你要完成一个任务B。

 

我手上有工具1,3

你手上有工具2

但是我需要工具1,2,3才能完成任务A。

你需要工具1,2才能完成任务B。

 

我在等着你把任务B完成,把工具2给我。

你在等着我把任务A完成,把工具1给你。

就这样形成了一个循环等待,并且一直不会结束,这样的话,工具,1,2,3都被无限期占用了。

而这种情况如果有新的人进来,需要工具1,2,3,他永远也得不到,但是他可能得到了其他资源,比如工具4。

那么工具4也被无限期占用了。

一直这样恶性循环下去。资源全都被锁死。

 

 

那么银行家算法是什么意思呢。

就是一个资源评估。(类似于银行里面对于贷款需要的一个资产评估和抵押吧)

 

在我要准备任务A之前,

先判断一下,我如果得到现在有的空闲资源:工具1和工具3.

我能不能完成任务A。

 

评估结果是不能。

那么就让我进入等待,等待其他的资源的释放(也就是工具2释放)。

那么我就等待,等待任务B被人完成了,工具2释放了。

那么我就准备就绪了,

我需要的工具都有了,可以进入任务A的工作了 。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值