致知录
第 XXXIV 卷 · 第 404 篇 · Concept Fables · 1970.01.01

互不相让的两名工人

概念寓言 · 1970.01.01 · 1 分钟阅读 · 278 字
目录 · 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)

死锁是数据库与操作系统经典问题,靠排序资源或超时打破。

故事里的隐喻对应什么

  • 各持对方所需、互不让 → 循环等待(死锁条件之一)
  • 彼此等对方先放 → 相互阻塞、无限等待
  • 谁也不动 → 系统停滞