Javaで同期化されたQueue
クラスがありますか? Vector
(同期している)とArrayList
(これはありません)のようなものを探していますが、List
インターフェイスを実装する代わりに、Queue
を実装しています。Javaに同期キューがありますか?
同期化されていないキューをラップして同期させる方法はありません。
Javaで同期化されたQueue
クラスがありますか? Vector
(同期している)とArrayList
(これはありません)のようなものを探していますが、List
インターフェイスを実装する代わりに、Queue
を実装しています。Javaに同期キューがありますか?
同期化されていないキューをラップして同期させる方法はありません。
ArrayBlockingQueue
と別のBlockingQueue
の実装を参照してください。ドキュメントから
:
さらにキューが要素を取り出すときに非空になった、要素の格納時にキュー内で利用可能になるスペースを待つのを待つ操作をサポートしていますキュー。
これは要求されたものではないブロッキングキューです。 – rghome
@rghome私はOPがスレッドセーフな実装を見つけることを望んでいたと信じています。この場合、私の答えは正しいです。 – bsiamionau
私はブロック動作を心配していました。リーダライタがブロックする場合、これは標準の非ブロッキング・キューとは非常に異なる動作です。しかし、APIを読んで、私はこれはオプションだと思うし、あなたも非ブロックを読み書きすることができます。だからあなたは正しい。 – rghome
SynchronousQueueはどうですか? 参照してください:あなたはリンクの下に、「BlockingQueueの」を使用することができますhttp://docs.oracle.com/javase/7/docs/api/java/util/concurrent/SynchronousQueue.html
これは非常に特殊な実装であり、実際には一般的ではありません。 – jtahlborn
ConcurrentLinkedDeque – delicateLatticeworkFever
あなたが拡張したクラスのドキュメントに目を通す場合https://docs.oracle.com/javase/7/docs/api/java/util/AbstractQueue.htmlおそらくあなたが探しているものを見つけるでしょう。また、https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html http://stackoverflow.com/questions/2695426/are-linkedblockingqueues-insert-and-remove-メソッドスレッドセーフ – rogerdpack
これは非常に有効な質問のようです。キューはこの点で他のJavaコレクションとは異なるようです。私はそれが再開されることを要求するつもりで、少し質問を明確にするために編集しました。 – rghome