哲学家就餐问题

题目

前提:哲学家吃意面必须要两支叉子

可以看到,如果每一个进程(哲学家)都请求左边的一支叉子,将会出现死锁(谁也吃不到意面的情况),这不满足有限等待的原则。所以当每一位哲学家申请第一支叉子前先封锁桌面,这样谁也不能再动叉子,两支叉子拿好后再解锁。

一个哲学家吃饭的过程:“都不准pick叉子!”——>拿起左边叉子——>拿起右边叉子——>"好了现在你们可以pick了"

改进算法

证明

  

显然可以拿起右边的叉子然后去吃饭啦 

  • 拿起一支叉子前右边的没被占用 
  • 拿起一支叉子前右边的已经被占用

那么右边的一定已经在吃饭了,等他吃完饭释放叉子就行。假设右边的没在吃饭,那么右边的就一定没有解锁桌面,该哲学家就没有再次封锁桌面的资格。  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值