JAvaにおけるConcurrentLinkedQueueクラス
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
java.util.concurrent.ConcurrentLinkedQueue<E>
タイプパラメータ:
E-このcollectionで保持されている要素のタイプ
実装されたすべてのインタフェース:
Serializable, Iterable
二、概説:
public class ConcurrentLinkedQueue<E> extends AbstractQueue<E> implements Queue<E>, Serializable
。 FIFO( ) 。 。 。 , 。 collection ,ConcurrentLinkedQueue 。 null 。
“ (wait-free)” , Maged M. Michael Michael L. Scott Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms 。
, collection ,size 。 , 。
Collection
およびIterator
インタフェースのすべてのオプションの .メモリ : の collectionが する 、ConcurrentLinkedQueue
のスレッドにオブジェクトを する happen-beforeは、その 、 のスレッドを してConcurrentLinkedQueue
から にアクセスまたは する です.
Java Collections Frameworkのメンバーです.
、 :
1.public ConcurrentLinkedQueue() は のConcurrentLinkedQueueを します. 2、public ConcurrentLinkedQueue(Collection c) されたcollection を に むConcurrentLinkedQueueを し、このcollection の に を します.
パラメータ:c
- に まれる collection
:
NullPointerException-collectionまたはその の がnullである
、 の :
1、public boolean add(E e) した をこのキューの に します.
:インタフェースCollection<E>
のadd
:インタフェースQueue<E>
のadd、
カバー:クラスAbstractQueue<E>
のadd
パラメータ:o
- する
り:true(Collection.add(E)
の による)
:NullPointerException- した がnullの
2、public boolean offer(E e) した をこのキューの に します.
:インタフェースQueue<E>
のoffer
パラメータ:e
- する
り:true(Queue.offer(E)
の による)
:NullPointerException
- した がnullの
3、public E poll()インタフェースQueue
からコピーされた :このキューのヘッダを して し、このキューが の nullを す.
:インタフェースQueue<E>
のpoll
≪ る|Return|emdw≫:キューのヘッダ.このキューが の nullを します.
4、public E peek()インタフェースQueue
からコピーされた :このキューのヘッダを するが しない;このキューが の nullが されます.
:インタフェースQueue<E>
のpeek
る:このキューのヘッダ;このキューが の nullを します.
5、public boolean isEmpty()このキューに が まれていない はtrueを します.
:インタフェースCollection<E>
のisEmpty
カバー:クラスAbstractCollection<E>
のisEmpty
≪ る|Return|emdw≫:このキューに が まれていない はtrueを します.
6、public int size()は、このキューの の を します.このキューに まれる の がInteger.MAX_より きい VALUEはInteger.MAX_を します.VALUE.
ほとんどのcollectionとは なり、この は ではないことに してください.これらのキューの のため, の を するにはO(n) の が である.
:インタフェースCollection<E>
のsize
:クラスAbstractCollection<E>
のsize
≪ る|Return|ldap≫:このキューの の
7、public boolean contains(Object o)このキューに された が まれている はtrueを します.より には、このキューにo.equals(e)を たす eが なくとも1つ まれている にのみtrueが される.
:インタフェースCollection<E>
のcontains
カバー:クラスAbstractCollection<E>
のcontains
パラメータ:o
-このキューに まれているオブジェクトを します
≪ る|Return|emdw≫:このキューに した が まれている はtrueを します.
8、public boolean remove(Object o) した の のインスタンスがキューから されます( する ).より には、このキューにo.equals(e)を たす eが1つ まれている 、そのような が される.このキューに した (または び しによって されたキュー)が まれている はtrueを します.
:インタフェースCollection<E>
のremove
カバー:クラスAbstractCollection<E>
のremove
パラメータ:o
-このキューから される ( する )
≪ る|Return|emdw≫:このキューが び しによって された 、trueを します.
9、public Object[]toArray()は、このキューのすべての を な で む を します.
このキューは、 り への を しないため、「 」になります.( い えれば、このメソッドは しい を り てる があります).したがって、 び し は、 される を に することができる.
この は ベースのAPIとcollectionベースのAPIとの の しとして する.
:インタフェースCollection<E>
のtoArray
カバー:クラスAbstractCollection<E>
のtoArray
る:このキューのすべての を む
10、public T[] toArray(T[] a)このキューのすべての を な で む を す. される のランタイムタイプは、 した のランタイムタイプです. した がキューを できる は、キューをここに します.そうでなければ、 した のランタイムタイプとこのキューサイズを つ しい が り てられます.
した がキューを でき、 りのスペース(すなわち、 の がキューより い)がある 、キューの にある はnullに されます. toArray()
の のように、この は ベースのAPIとcollectionベースのAPIとの の しとして する.さらに、この では、 の タイプを に できます. によっては、 り てコストを できます.
xは のみを む のキューであると します. のコードは、キューを しい り てのString にダンプするために します.
String[] y = x.toArray(new String[0]);
なお、toArray(new Object[0])とtoArray()は に じである.
:インタフェースCollection<E>
のtoArray
カバー:クラスAbstractCollection<E>
のtoArray
パラメータ:a
-キュー を するために される ( が きい ).それ の 、 じランタイムタイプを つ しい が り てられます.
る:このキューのすべての を む
:ArrayStoreException
- した のランタイムタイプがこのキュー の のランタイムタイプのスーパータイプでない NullPointerException
- がnullである
11.public Iteratoriterator()は、このキュー で な で する を します. される は、ConcurrentModificationException
を することなく、 を るときに する を し、 のすべての を することもできます(ただし、 されていません).
:インタフェースIterable<E>
のiterator
:インタフェースCollection<E>
のiterator
:クラスAbstractCollection<E>
のiterator
る:このキュー で な で する