JAvaにおけるConcurrentLinkedQueueクラス


一、クラス構造:
java.lang.Object
  java.util.AbstractCollection<E>
      java.util.AbstractQueue<E>
          java.util.concurrent.ConcurrentLinkedQueue<E>

タイプパラメータ:
E-このcollectionで保持されている要素のタイプ
実装されたすべてのインタフェース:
        Serializable, Iterable, Collection, Queue 
二、概説:
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 る:このキュー で な で する