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

クラスLinkedTransferQueue<E>

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

public class LinkedTransferQueue<E> extends AbstractQueue<E> implements TransferQueue<E>, Serializable
リンク・ノードに基づく、制限なしのTransferQueueです。 このキューは、指定された任意のプロデューサに関して、FIFO (先入れ先出し)で要素を順序付けします。 キューの先頭は、特定のプロデューサに関して、もっとも長い時間キューに入っていた要素です。 キューの末尾は、特定のプロデューサに関して、もっとも短い時間キューに入っていた要素です。

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

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

このクラスとそのイテレータは、CollectionおよびIteratorインタフェースのオプション・メソッドすべてを実装します。

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

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

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