E
- public class MpscGrowableArrayQueue<E> extends MpscChunkedArrayQueue<E>
MessagePassingQueue.Consumer<T>, MessagePassingQueue.ExitCondition, MessagePassingQueue.Supplier<T>, MessagePassingQueue.WaitStrategy
p0, p1, p10, p11, p12, p13, p14, p15, p16, p17, p2, p3, p4, p5, p6, p7
maxQueueCapacity
producerBuffer, producerMask
consumerBuffer, consumerIndex, consumerMask
p01, p02, p03, p04, p05, p06, p07
producerIndex
UNBOUNDED_CAPACITY
Constructor and Description |
---|
MpscGrowableArrayQueue(int maxCapacity) |
MpscGrowableArrayQueue(int initialCapacity,
int maxCapacity) |
Modifier and Type | Method and Description |
---|---|
protected long |
getCurrentBufferCapacity(long mask) |
protected int |
getNextBufferSize(E[] buffer) |
availableInQueue, capacity
currentConsumerIndex, currentProducerIndex, drain, drain, drain, fill, fill, fill, isEmpty, iterator, offer, peek, poll, relaxedOffer, relaxedPeek, relaxedPoll, size, toString
casProducerLimit, lvProducerLimit, soProducerLimit
lvConsumerIndex, soConsumerIndex
casProducerIndex, lvProducerIndex, soProducerIndex
contains, containsAll, remove, removeAll, retainAll, toArray, toArray
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
clear
public MpscGrowableArrayQueue(int maxCapacity)
public MpscGrowableArrayQueue(int initialCapacity, int maxCapacity)
initialCapacity
- the queue initial capacity. If chunk size is fixed this will be the chunk size.
Must be 2 or more.maxCapacity
- the maximum capacity will be rounded up to the closest power of 2 and will be the
upper limit of number of elements in this queue. Must be 4 or more and round up to a larger
power of 2 than initialCapacity.protected int getNextBufferSize(E[] buffer)
getNextBufferSize
in class MpscChunkedArrayQueue<E>
protected long getCurrentBufferCapacity(long mask)
getCurrentBufferCapacity
in class MpscChunkedArrayQueue<E>