デッドロックの例 ダウンロード | スレッド | 学科

N個の木槌とノミをN*2人の大工が共有して作業をする. 基本的には哲学者の問題と同じだが,ちょいとはリアリティがある.

ダウンロード (Swing版 [DIR], デッドロックしやすい改訂版 [DIR], )

実行開始

デットロック

問題点

src/Carpenter.java のrun()メソッドを見ればわかるが, ハンマーがとれなきゃ,ノミをとって, 再度,ハンマーがとれるのを待つというロジックになっているため, それぞれが,ハンマーもしくはノミ1本をとった状態で膠着してしまう.

解決法

たとえば,まずノミがとれるまで,ハンマーはとらずに待つなどの 戦略にすれば,デッドロックは起こらない.

本ページトップ | スレッド | 海谷HP $Id: index.html,v 1.1 2003-05-07 19:44:09+09 kaiya Exp kaiya $