デッドロックの例 | ダウンロード | スレッド | 学科 |
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 $ |