問題タブ [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 - 食事の哲学者を解決する別の方法 (正しい方向へのポイントが必要です)
プログラミングの課題で、食事の哲学者問題の解決策を実装するように依頼されました。私は2つの方法でそうしなければなりません:
- wait() および notifyAll() メカニズムを使用する
- Java API で提供される既存の並行データ構造を使用する
私はすでに最初の実装を完了しています。教授がステップ 2 で話している並行データ構造はどれですか? 私は彼女が何かに言及したことを覚えていません。ソースコードは必要ありません。正しい方向へのポインターだけです。
multithreading - 食事の哲学者の問題 - 明確化が必要
最近、食事の哲学者の問題に関するこのウィキペディアの記事を読みましたが、チャンディ/ミスラの解決策についてはよくわかりません。
記事によると、「フォークを持った哲学者はリクエストメッセージを受け取ったとき、フォークが汚れていればフォークを保持し、汚れていればあきらめる」とのことです。この質問の文脈では、彼は食べている場合はパスし、まだ食べ始めていない場合は保持します。
シナリオによると、Dirty とはどういう意味ですか? スレッドは実行中ですか、それとも降伏しましたか?
c - 複数の fork() を同時に実行する方法は? cでセマフォを使用する方法は?
私は、教授がセマフォを使用してダイニング哲学者の問題を解決するための解決策を求めている課題に取り組んでいます。
これまでの私のコードは次のとおりです。
実行すると、次のようになりました。
ご覧のとおり、次の 2 つの問題があります。
- プロセス n+1 は、プロセス n が完了しない限り実行されません。
- プログラムを実行する前のテストでは、2 番目の哲学者が箸を持ち上げるように要求しているときに、プログラムが動かなくなりました。どうやらセマフォに信号が送られておらず、哲学者が信号を待っているようです。
プログラムを修正するのを手伝ってくれませんか?
c - 食事する哲学者の飢餓の可能性
次のすべてが満たされるかどうかが保証される場合は、食事する哲学者の問題を解決するアルゴリズムを確認する必要があります。
- デッドロックの可能性はありません。
- 飢餓の可能性はありません。
問題を解決するために箸のセマフォを使用しています。
これが私のコード(アルゴリズム)です:
ここでデッドロックの可能性はないと確信していますが、ここで飢餓の問題が発生する可能性はありますか?はいの場合、どうすれば解決できますか?
java - Javaで食事する哲学者はデッドロックにつながる
私はJavaで食事する哲学者の問題を実装しましたが、何かがうまくいかず、デッドロックにつながります...誰かがこれがデッドロックにつながる理由を見つけることができますか?
誰もが食べて飢餓を防ぐことができるように、哲学者は常に食堂でN-1でなければなりません。
メインクラス:
箸のクラス:
食堂クラス:
哲学者クラス:
java - pnml で Java コードを使用して色付きのペトリネットを表現する
Colored Petri Net (CP-Net) を作成する場合、PNML の次の例のように、宣言セクションで Java コードを使用できますか? または、この部分でも標準を考慮する必要がありますか? 次の例は XML 表現ですが、同じ方法を使用して pnml で表現できますか? いいえの場合、どうすればそうすることができますか?ありがとう、
haskell - コンパイルエラー:「'do'構文の最後のステートメントは式でなければなりません」
以下は私の食事する哲学者のコードであり、「'do'構文の最後のステートメントは式でなければなりません:mVar2 <-newEmptyMVar mVar3」というコンパイルエラーが発生します。誰かがこのエラーを修正してこのプログラムを機能させるのを手伝ってもらえますか?ありがとうございました
java - JavaでMutexを使って食事する哲学者を解決する方法は?
私のJavaプロジェクトには3つのJavaクラスがあります。Main、Philosoper、chStickがあります。ブール値isTakenを使用した食事する哲学者の問題を解決しました。
以下のようなプロジェクトchStick.javaで。このクラスは、使用中または使用しない箸を制御します。
このコードは正常に機能します。ブール値isTakenの代わりにSemaphoreを使用すると、正常に機能します。
私の問題は、Mutexを使用してこのクラスを書き直すことです。私はたくさんの方法を試しましたが、それでもうまくいきませんでした。Mutexクラスを使用する必要があります。
編集:
java - 食事する哲学者のスレッドとセマフォ
5つのテーブルとフォークを持つ単純なGUIを作成し、この有名な問題を視覚化しようとしましたが、完全に実装することはできません。私は自分のコードの行き詰まりを理解できませんでした。誰かがこの問題を解決するための提案をしてくれたら、助けていただければ幸いです。追記:配列作成のアイデアに関するエラーもあります。java.lang.ArrayIndexOutOfBoundsException:5のようなエラーがあります。