2

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

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

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

4

4 に答える 4

3

java.util.concurrentのJavadoc ページを参照して、アイデアを得ることができます。同時実行データ構造はこれらだけではありません (一部の java.util データ構造には、同時実行サポートが組み込まれています) が、これは良い出発点です。

Collections.synchronizedList私が「既存の並行データ構造」と呼ぶものではありません。並行性をサポートしないデータ構造のラッパーです。

于 2009-03-03T00:46:19.837 に答える
1

おそらく彼女は、Java コレクションを同期ラッパーでラップすることを意味していたのCollections.synchronizedList()でしょjava.util.concurrentCopyOnWriteArrayList

于 2009-03-03T00:45:20.043 に答える
1

実際にはデータ構造ではありません...しかし、 http://java.sun.com/javase/6/docs/api/java/util/concurrent/Semaphore.htmlが必要な可能性のあるものの近くにありますか?

于 2009-03-03T00:47:14.860 に答える
1

Java API には並行ライブラリーがあります。

いくつかのコレクションがあります

java.util.concurrent パッケージを見てください

http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html

于 2009-03-03T00:47:37.043 に答える