問題タブ [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.
java - Thread.join() は、Dining Philosophers の実装で期待どおりに動作しません
Java で Monitor (Synchronized) を使用してダイニング フィロソファーの問題を実装しました。
このプログラムの目標は次のとおりです。
すべての哲学者は、考え、箸を取り、食べ、箸を置くというワークフローに従う必要があります (競合条件はありません)。
デッドロックなし
このコードは正常に動作しているように見えますが、永久に実行されるため、何かが正しくありません。デバッグしようとすると、デバッグ ツールはこの行で停止します philosopher[i].t.join(); しかし、プログラムは終了しませんでした。
問題の特定または修正方法を教えてください。アドバイスありがとうございます。
MyMonitor クラス:
MyPhilosopher クラス: