私は、同時キューの考え方を理解するのに苦労しています。私はキューがFIFOであること、または最初に最初に来たデータ構造を理解しています。同時キュー - 一般的な質問(説明と使用法)
スレッドセーフティと解釈する同時実行性の部分を追加すると(それが間違っているかどうかを教えてください)、少しばかげてしまいます。並行性とは、さまざまなスレッドがキューに追加する方法、またはキューからアイテムを削除する方法を意味します。並行処理はこの操作に順序づけられますか?
私は、並行キューの機能の一般的な説明を高く評価します。同様の投稿hereは私が望むほど一般的ではありません。
また、並行優先キューのようなものがありますか?その使用法は何ですか?
この件に関する簡単な説明や役に立つリンクについては、事前に感謝します。
スレッドセーフなキューインプリメンテーションを変更するためにロックを取得すると、オーバーヘッドがほとんどなく、java.util.concurrentパッケージ内のすべてのBlockingQueue実装で少なくとも1つのロックが使用されます。ロックがなければ、プロデューサ/コンシューマはブロッキングのput/takeを実行できず、一括操作(drainToなど)はアトミックに行うことはできません。 – Adamski
私はJavaがロックフリーのキューを使用していると考えました:http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html – Steve