最近、私は食事の哲学者の問題に関してthis Wikipedia articleを読んでいますが、私はChandy/Misraソリューションではっきりしません。 「フォークを持った哲学者がリクエストメッセージを受け取ると、フォークを清潔に保ちますが、汚れたときにフォークを持ちます」この質問の文脈では、彼が食事をしていればそれを渡し、まだ食事を開始していなければそれを保持します。 シナリオによれば、
the Dining Philosophers Problemで作業中です。用フォークを配布iが見つかったこのループIMを使用:I int philosophersNumber=5;
for (int i = 0; i < philosophersNumber; i++) {
philosophers[i] = new Philosopher(
i,
私は食堂の哲学者の問題をJavaで実装していますが、何かがうまくいかず、デッドロックにつながります... 誰かがデッドロックにつながるのはなぜですか? 誰もが食べて飢えを防ぐために、哲学者は常にダイニングルームでN-1にする必要があります。 メインクラス: public class DiningPhilosophers {
public static int N = 5;
//Philoso
私は、Javaセマフォを使用して食事の哲学者の問題を解決したいですが、私は立ち往生しています。最高のIDの箸は利用できるはずですが、それはいつも取られているようですが、私は理由を知らないのです。誰かが私が間違っていた場所を教えてもらえますか? フォーククラス: class Fork {
public static Semaphore fork = new Semaphore(1);
publi