互不相让的两名工人
目录 · 2
各自卡在对方手里,永远不动
作坊里两名匠人,甲握着乙要的凿子,乙攥着甲要的刨子。甲说:你先还我刨子,我再给你凿子。乙也不让:你先还凿子。两人各执一词,僵在当堂,谁也不肯先松手——可松手的前提,正是对方先松。日头偏西,活计纹丝未动,两人饿着肚子对瞪。旁人看得急,夺过一人的工具强行分开,这才解了套。后来作坊定下死规矩:工具按编号顺序借,谁也不得握着别人的、等别人先给。
揭示
这则故事想说的概念是:死锁(Deadlock)。
英文定义(Deadlock):A deadlock is a state where two or more processes are each waiting on the other, so none can proceed, requiring prevention or detection.
它属于哪个领域:并发系统(Concurrent Systems)
死锁是数据库与操作系统经典问题,靠排序资源或超时打破。
故事里的隐喻对应什么
- 各持对方所需、互不让 → 循环等待(死锁条件之一)
- 彼此等对方先放 → 相互阻塞、无限等待
- 谁也不动 → 系统停滞