# 哲学家就餐问题

> 哲学家就餐问题（英語：Dining philosophers problem）是在计算机科学中的一个经典问题，用来演示在并发计算中多线程同步时产生的问题。 1971年，荷蘭计算机科学家艾兹赫尔·戴克斯特拉提出了一个同步问题，即假设有五台计算机都试图访问五份共享的磁带驱动器。稍后，这个问题被東尼·霍爾重新表述为哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。

- ID: m03836
- 分类: culture
- 领域: 哲学

## 定义

5个哲学家围坐一桌，每人之间只有一根筷子（共5根）。哲学家要么思考，要么进食。进食需要同时拿左右两根筷子。如果每个人都拿起左边的筷子等右边的，所有人都会饿死（死锁）。脚手架作用：资源竞争死锁。隐喻组织中的资源分配。如果每个人都占有一部分资源不放手，等待别人释放资源，整个组织就会陷入瘫痪（死锁）。必须引入“资源分级”或“服务员（仲裁者）”机制。

## 机制

五位哲学家围坐，交替思考与就餐，每人需同时拿起左右两根筷子。若所有人同时拿起左筷则死锁；若随机放下又可能饥饿。它抽象了多进程对有限共享资源的互斥与同步问题。

## 练习

识别系统中的共享资源与竞争者；为获取资源设定有序规则（如按编号先取小号资源）；引入仲裁者或超时放弃机制；验证能否避免死锁与饥饿。

## 脚手架用法

资源竞争死锁。隐喻组织中的资源分配。如果每个人都占有一部分资源不放手，等待别人释放资源，整个组织就会陷入瘫痪（死锁）。必须引入“资源分级”或“服务员（仲裁者）”机制。

[阅读网页](https://thinkingmodels.site/entries/detail/m03836)
