哲学家就餐问题¶
来源:
操作系统 / note/进程管理/进程通信/哲学家就餐问题.md
上级:进程通信
哲学家就餐问题用于说明多个进程竞争有限资源时可能出现的死锁和饥饿问题。
问题模型¶
五个哲学家围坐在圆桌旁,每两个哲学家之间有一根筷子。哲学家需要同时拿到左右两根筷子才能吃饭。
风险¶
如果每个哲学家都先拿起左边筷子,再等待右边筷子,所有人都可能同时等待,形成死锁。
常见解决思路¶
- 最多允许四个哲学家同时尝试拿筷子。
- 要求必须同时拿到两根筷子,否则一根也不拿。
- 规定奇偶哲学家拿筷子的顺序不同。