問題タブ [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 投票する
4 に答える
1961 参照

java - 食事の哲学者を解決する別の方法 (正しい方向へのポイントが必要です)

プログラミングの課題で、食事の哲学者問題の解決策を実装するように依頼されました。私は2つの方法でそうしなければなりません:

  1. wait() および notifyAll() メカニズムを使用する
  2. Java API で提供される既存の並行データ構造を使用する

私はすでに最初の実装を完了しています。教授がステップ 2 で話している並行データ構造はどれですか? 私は彼女が何かに言及したことを覚えていません。ソースコードは必要ありません。正しい方向へのポインターだけです。

0 投票する
2 に答える
1694 参照

multithreading - 食事の哲学者の問題 - 明確化が必要

最近、食事の哲学者の問題に関するこのウィキペディアの記事を読みましたが、チャンディ/ミスラの解決策についてはよくわかりません。

記事によると、「フォークを持った哲学者はリクエストメッセージを受け取ったとき、フォークが汚れていればフォークを保持し、汚れていればあきらめる」とのことです。この質問の文脈では、彼は食べている場合はパスし、まだ食べ始めていない場合は保持します。

シナリオによると、Dirty とはどういう意味ですか? スレッドは実行中ですか、それとも降伏しましたか?

0 投票する
2 に答える
1010 参照

c - 複数の fork() を同時に実行する方法は? cでセマフォを使用する方法は?

私は、教授がセマフォを使用してダイニング哲学者の問題を解決するための解決策を求めている課題に取り組んでいます。

これまでの私のコードは次のとおりです。

実行すると、次のようになりました。

ご覧のとおり、次の 2 つの問題があります。

  • プロセス n+1 は、プロセス n が完了しない限り実行されません。
  • プログラムを実行する前のテストでは、2 番目の哲学者が箸を持ち上げるように要求しているときに、プログラムが動かなくなりました。どうやらセマフォに信号が送られておらず、哲学者が信号を待っているようです。

プログラムを修正するのを手伝ってくれませんか?

0 投票する
2 に答える
9956 参照

c - 食事する哲学者の飢餓の可能性

次のすべてが満たされるかどうかが保証される場合は、食事する哲学者の問題を解決するアルゴリズムを確認する必要があります。

  • デッドロックの可能性はありません。
  • 飢餓の可能性はありません。

問題を解決するために箸のセマフォを使用しています。

これが私のコード(アルゴリズム)です:

ここでデッドロックの可能性はないと確信していますが、ここで飢餓の問題が発生する可能性はありますか?はいの場合、どうすれば解決できますか?

0 投票する
2 に答える
4123 参照

java - Javaで食事する哲学者はデッドロックにつながる

私はJavaで食事する哲学者の問題を実装しましたが、何かがうまくいかず、デッドロックにつながります...誰かがこれがデッドロックにつながる理由を見つけることができますか?

誰もが食べて飢餓を防ぐことができるように、哲学者は常に食堂でN-1でなければなりません。

メインクラス:

箸のクラス:

食堂クラス:

哲学者クラス:

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

java - pnml で Java コードを使用して色付きのペトリネットを表現する

Colored Petri Net (CP-Net) を作成する場合、PNML の次の例のように、宣言セクションで Java コードを使用できますか? または、この部分でも標準を考慮する必要がありますか? 次の例は XML 表現ですが、同じ方法を使用して pnml で表現できますか? いいえの場合、どうすればそうすることができますか?ありがとう、

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

haskell - コンパイルエラー:「'do'構文の最後のステートメントは式でなければなりません」

以下は私の食事する哲学者のコードであり、「'do'構文の最後のステートメントは式でなければなりません:mVar2 <-newEmptyMVar mVar3」というコンパイルエラーが発生します。誰かがこのエラーを修正してこのプログラムを機能させるのを手伝ってもらえますか?ありがとうございました

0 投票する
2 に答える
558 参照

c - 実行時にコードを手伝ってくれる人はいますか?

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

java - JavaでMutexを使って食事する哲学者を解決する方法は?

私のJavaプロジェクトには3つのJavaクラスがあります。Main、Philosoper、chStickがあります。ブール値isTakenを使用した食事する哲学者の問題を解決しました。

以下のようなプロジェクトchStick.javaで。このクラスは、使用中または使用しない箸を制御します。

このコードは正常に機能します。ブール値isTakenの代わりにSemaphoreを使用すると、正常に機能します。

私の問題は、Mutexを使用してこのクラスを書き直すことです。私はたくさんの方法を試しましたが、それでもうまくいきませんでした。Mutexクラスを使用する必要があります。

編集:

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

java - 食事する哲学者のスレッドとセマフォ

5つのテーブルとフォークを持つ単純なGUIを作成し、この有名な問題を視覚化しようとしましたが、完全に実装することはできません。私は自分のコードの行き詰まりを理解できませんでした。誰かがこの問題を解決するための提案をしてくれたら、助けていただければ幸いです。追記:配列作成のアイデアに関するエラーもあります。java.lang.ArrayIndexOutOfBoundsException:5のようなエラーがあります。