問題タブ [dining-philosopher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
147 参照

java - Thread.join() は、Dining Philosophers の実装で期待どおりに動作しません

Java で Monitor (Synchronized) を使用してダイニング フィロソファーの問題を実装しました。

このプログラムの目標は次のとおりです。

  • すべての哲学者は、考え、箸を取り、食べ、箸を置くというワークフローに従う必要があります (競合条件はありません)。

  • デッドロックなし

このコードは正常に動作しているように見えますが、永久に実行されるため、何かが正しくありません。デバッグしようとすると、デバッグ ツールはこの行で停止します philosopher[i].t.join(); しかし、プログラムは終了しませんでした。

問題の特定または修正方法を教えてください。アドバイスありがとうございます。

MyMonitor クラス:

MyPhilosopher クラス: