Package org.jctools.queues.alt
Class MpmcArrayConcurrentQueue<E>
- java.lang.Object
-
- org.jctools.queues.alt.ConcurrentCircularArray<E>
-
- org.jctools.queues.alt.ConcurrentSequencedCircularArray<E>
-
- org.jctools.queues.alt.MpmcArrayConcurrentQueue<E>
-
- All Implemented Interfaces:
ConcurrentQueue<E>
public final class MpmcArrayConcurrentQueue<E> extends ConcurrentSequencedCircularArray<E> implements ConcurrentQueue<E>
-
-
Field Summary
Fields Modifier and Type Field Description protected org.jctools.queues.alt.MpmcArrayConcurrentQueueColdFields.Consumer<E>
consumer
protected org.jctools.queues.alt.MpmcArrayConcurrentQueueColdFields.Producer<E>
producer
-
Fields inherited from class org.jctools.queues.alt.ConcurrentSequencedCircularArray
sequenceBuffer
-
Fields inherited from class org.jctools.queues.alt.ConcurrentCircularArray
buffer, BUFFER_PAD, mask, SPARSE_SHIFT
-
-
Constructor Summary
Constructors Constructor Description MpmcArrayConcurrentQueue(int capacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
capacity()
ConcurrentQueueConsumer<E>
consumer()
ConcurrentQueueProducer<E>
producer()
int
size()
This method may be O(n) or O(1) and may not be accurate.-
Methods inherited from class org.jctools.queues.alt.ConcurrentSequencedCircularArray
calcSequenceOffset, calcSequenceOffset, lpSequence, lpSequenceElement, lvSequence, lvSequence, soSequence, soSequenceElement, spSequenceElement, spSequenceElement, svSequenceElement, svSequenceElement
-
Methods inherited from class org.jctools.queues.alt.ConcurrentCircularArray
calcOffset, calcOffset, lpElement, lpElement, lvElement, lvElement, soElement, soElement, spElement, spElement, svElement, svElement
-
-
-
-
Method Detail
-
size
public int size()
Description copied from interface:ConcurrentQueue
This method may be O(n) or O(1) and may not be accurate.- Specified by:
size
in interfaceConcurrentQueue<E>
- Returns:
- the number of elements in the queue
-
capacity
public int capacity()
- Specified by:
capacity
in interfaceConcurrentQueue<E>
- Returns:
- the maximum number of elements that can fit in this queue, or -1 if unbounded.
-
consumer
public ConcurrentQueueConsumer<E> consumer()
- Specified by:
consumer
in interfaceConcurrentQueue<E>
- Returns:
- a consumer instance to be used from a consuming thread.
-
producer
public ConcurrentQueueProducer<E> producer()
- Specified by:
producer
in interfaceConcurrentQueue<E>
- Returns:
- a producer instance to be used from a producing thread.
-
-