プログラミングの課題で、食事の哲学者問題の解決策を実装するように依頼されました。私は2つの方法でそうしなければなりません:
- wait() および notifyAll() メカニズムを使用する
- Java API で提供される既存の並行データ構造を使用する
私はすでに最初の実装を完了しています。教授がステップ 2 で話している並行データ構造はどれですか? 私は彼女が何かに言及したことを覚えていません。ソースコードは必要ありません。正しい方向へのポインターだけです。
プログラミングの課題で、食事の哲学者問題の解決策を実装するように依頼されました。私は2つの方法でそうしなければなりません:
私はすでに最初の実装を完了しています。教授がステップ 2 で話している並行データ構造はどれですか? 私は彼女が何かに言及したことを覚えていません。ソースコードは必要ありません。正しい方向へのポインターだけです。
java.util.concurrentのJavadoc ページを参照して、アイデアを得ることができます。同時実行データ構造はこれらだけではありません (一部の java.util データ構造には、同時実行サポートが組み込まれています) が、これは良い出発点です。
Collections.synchronizedList
私が「既存の並行データ構造」と呼ぶものではありません。並行性をサポートしないデータ構造のラッパーです。
おそらく彼女は、Java コレクションを同期ラッパーでラップすることを意味していたのCollections.synchronizedList()
でしょjava.util.concurrent
うCopyOnWriteArrayList
。
実際にはデータ構造ではありません...しかし、 http://java.sun.com/javase/6/docs/api/java/util/concurrent/Semaphore.htmlが必要な可能性のあるものの近くにありますか?
Java API には並行ライブラリーがあります。
いくつかのコレクションがあります
java.util.concurrent パッケージを見てください
http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html