モジュール java.base
パッケージ java.util.concurrent

クラスConcurrentLinkedDeque<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.concurrent.ConcurrentLinkedDeque<E>
型パラメータ:
E - この両端キューに保持されている要素の型
すべての実装されたインタフェース:
Serializable, Iterable<E>, Collection<E>, Deque<E>, Queue<E>, SequencedCollection<E>

public class ConcurrentLinkedDeque<E> extends AbstractCollection<E> implements Deque<E>, Serializable
リンク・ノードに基づく、制限なしの並行両端キューです。 挿入、削除、およびアクセスの並行オペレーションは、複数のスレッドにわたって安全に実行されます。 共通のコレクションへのアクセスを多数のスレッドが共有する場合、ConcurrentLinkedDequeは選択肢として適切です。 大半のコレクション実装と同様、このクラスはnull要素の使用を許容しません。

イテレータおよびスプリッテレータは弱一貫性を持っています

大半のコレクションとは異なり、sizeメソッドは一定時間のオペレーションではないことに留意してください。 これらの両端キューの非同期の性質のために、現在の要素の数を判定するには要素のトラバーサルが必要になります。そのため、このコレクションがトラバーサル中に変更された場合は、不正確な結果が報告される可能性があります。

addAll(java.util.Collection<? extends E>)removeIf(java.util.function.Predicate<? super E>)forEach(java.util.function.Consumer<? super E>)など、複数の要素を追加、削除または検査するバルク操作は、原子的に実行される保証はありません。 たとえば、 addAll操作と並行するforEachトラバースでは、追加された要素の一部のみが監視される場合があります。

このクラスとそのイテレータは、DequeおよびIteratorインタフェースの任意メソッドすべてを実装します。

メモリー整合性効果: ほかの並行処理コレクションと同様、オブジェクトをConcurrentLinkedDequeに配置する前のスレッド内のアクションは、別のスレッドでのその要素へのアクセスまたはConcurrentLinkedDequeからの削除に続くアクションよりも前に発生します。

このクラスは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.7
関連項目: