E - type of the element stored in the Queuepublic class MpmcArrayQueue<E> extends ConcurrentSequencedCircularArrayQueue<E> implements QueueProgressIndicators
ConcurrentCircularArrayQueue. This implies that
any and all threads may call the offer/poll/peek methods and correctness is maintained. SEQ_BUFFER_PAD, sequenceBufferbuffer, mask, REF_BUFFER_PAD, SPARSE_SHIFT| Constructor and Description |
|---|
MpmcArrayQueue(int capacity) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
casConsumerIndex(long expect,
long newValue) |
protected boolean |
casProducerIndex(long expect,
long newValue) |
long |
currentConsumerIndex()
This method has no concurrent visibility semantics.
|
long |
currentProducerIndex()
This method has no concurrent visibility semantics.
|
boolean |
isEmpty() |
protected long |
lvConsumerIndex() |
protected long |
lvProducerIndex() |
boolean |
offer(E e) |
E |
peek() |
E |
poll() |
int |
size() |
calcSequenceOffset, calcSequenceOffset, lvSequence, soSequencecalcElementOffset, calcElementOffset, clear, iterator, lpElement, lpElement, lvElement, lvElement, soElement, soElement, spElement, spElementadd, addAll, element, removecontains, containsAll, remove, removeAll, retainAll, toArray, toArray, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcontains, containsAll, equals, hashCode, parallelStream, remove, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArraypublic E poll()
Because return null indicates queue is empty we cannot simply rely on next element visibility for poll and must test producer index when next element is not visible.
public int size()
size in interface Collection<E>size in class AbstractCollection<E>public boolean isEmpty()
isEmpty in interface Collection<E>isEmpty in class AbstractCollection<E>public long currentProducerIndex()
QueueProgressIndicatorscurrentProducerIndex in interface QueueProgressIndicatorspublic long currentConsumerIndex()
QueueProgressIndicatorscurrentConsumerIndex in interface QueueProgressIndicatorsprotected final long lvConsumerIndex()
protected final boolean casConsumerIndex(long expect,
long newValue)
protected final long lvProducerIndex()
protected final boolean casProducerIndex(long expect,
long newValue)
Copyright © 2013-2015. All Rights Reserved.