デッドロックの例 海谷ホームページ | ダウンロード | スレッド | 学科

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

ダウンロード

実行開始

デットロック

問題点

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

解決法

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

コード例実行画面


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