陪了潘辰4個小時,他終於悠悠醒轉,在我的辦公室裏,一邊揉著腦袋向我抱怨下手太重,一邊喝著速溶咖啡,等待我的解釋。
我端著咖啡罐和熱水壺走到桌前坐下,時隔多年後,又一次開始了對學弟潘辰的教導。
“你看,我現在想要衝一杯咖啡,需要咖啡罐和水壺。如果我先拿到咖啡,”我伸手拿起咖啡,往杯子裏放了兩勺,“又拿到水壺,”我又將熱水倒入杯中,“一杯咖啡就衝好了,任務完成了,對吧?”
潘辰點點頭,不明所以地看著我。
我接著說道;“如果你也想衝一杯咖啡,你開始的比我晚,當我放下咖啡罐,你把它拿起來,我放下水壺,又被你拿到了,這樣,我有了一杯咖啡,你也可以衝一杯咖啡,我們就完成了兩項任務。”
這裏的邏輯很簡單,潘辰點頭認可。
“那麽問題來了,”我繼續說,“如果我倆同時想衝一杯咖啡,我拿到了咖啡罐,”我拿起咖啡罐,又把水壺推到他麵前,“而你拿到了水壺,我們都想盡快完成自己的任務,不願放棄自己手頭的資源,又都拿不到別人的資源,會怎麽樣?”
潘辰答道:“我倆會互相等待對方放手,但誰也不會放下自己的資源,所以,我們會無盡地等待下去。”
我讚許地點點頭,道:“我的課講完了,這就是死鎖。”
潘辰的超級大腦立即搞明白了事情的來龍去脈,他分析道:“當幾個工作需要同樣的一樣或幾樣資源,它們又各自占有一樣資源不願放棄,就形成了死鎖。我工作時同時需要幾樣資源,左手握鼠標,右手敲鍵盤,眼睛看屏幕,大腦分析運算。當時,我用鼠標點擊第一個頁麵,右手在第二個窗口打字,眼睛看著第三個窗口,大腦又在想著工作總結,四項工作各占一樣資源互不相讓,最終進入了死鎖狀態。”