第 2 种情况即先后进入临界区的 2 位哲学家的左右叉子存在竞争情况(说明这 2 位哲学家的编号相邻) , 因此后进入临界区的哲学家还需要等待 1 只叉子 , 才能就餐 。 此时可视为只有 1 个哲学家在就餐 。
至于“只允许 1 个哲学家就餐”的代码 , 很好理解 , 每次严格地只让 1 个哲学家就餐 , 由于过于严格 , 以至于都不需要将叉子视为ReentrantLock 。
方法三前面说过 , 该题的本质是考察如何避免死锁 。
而当 5 个哲学家都左手持有其左边的叉子或当 5 个哲学家都右手持有其右边的叉子时 , 会发生死锁 。
故只需设计1个避免发生上述情况发生的策略即可 。
即可以让一部分哲学家优先去获取其左边的叉子 , 再去获取其右边的叉子;再让剩余哲学家优先去获取其右边的叉子 , 再去获取其左边的叉子 。
代码如下:
改进:
位运算就可以表示5个叉子的使用状态 , 只需用1个volatile修饰的int变量即可 + CAS操作即可 , 即AtomicInteger类 。
写在最后本文内容出处是力扣官网 , 希望和大家一起刷算法 , 在后面的路上不变秃但是变强!
好兄弟可以点赞并关注我 , 全部都是干货 。
相关经验推荐
- |湾测技术:自研工控传感器芯片行业发展趋势
- 风扇|西班牙制冷风扇进入中国!半导体核心技术,价格却只有空调的1/3
- 空调扇|空调扇界的“华为”,采用半导体强制冷技术,净化空气久吹不湿寒
- 华硕|大厂也内卷?不只是造手机,还要发展技术!
- 坚果手机|毫米波雷达技术方案,爱希ISEE人体感应器,雷达传感器探测应用
- |柔性电子产品的激光传输、打印和组装技术(2)
- 阿里巴巴|一加新款中端机本月发布 LCD屏加天玑8100或归属Ace系列
- 量子技术|新一轮科技战要打响了,在量子技术领域,未来谁能称王?
- |电池修复技术-锂电保护过充与过放
- 显卡|都2022年了,iPhone还是令人捉急的充电技术怎么解?答:上外挂
