MpscUnboundedArrayQueue
it is designed to provide a better scaling when more
producers are concurrently offering.poll()
could spin while awaiting a new element to be available:
to avoid this behaviour relaxedPoll()
should be used instead, accounting for the semantic differences
between the twos.
Access | Constructor and Description |
---|---|
public | MpscUnboundedXaddArrayQueue(int
The buffer size to be used in each chunk of this queue chunkSize, int The maximum number of reused chunks kept around to avoid allocation, chunks are pre-allocated maxPooledChunks)
|
public |
Modifier and Type | Method and Description |
---|---|
public int | drain(MessagePassingQueue.
Overrides io. Implements io. |
public int | fill(MessagePassingQueue.
Overrides io. Implements io. |
public int | fill(MessagePassingQueue.
Implements io. |
pack-priv final MpscUnboundedXaddChunk | newChunk(long index, MpscUnboundedXaddChunk<E> prev, int chunkSize, boolean pooled)
Implements abstract io. |
public boolean | offer(E
not e)null , will throw NPE if it isImplements io. Queue#offer(Object) interface.
|
public E | peek()
Implements io. Queue#peek() interface.
|
public E | poll()
Implements io. Queue#poll() interface.
|
private MpscUnboundedXaddChunk | |
public E | relaxedPeek()
Implements io. |
public E | relaxedPoll()
Implements io. |
private MpscUnboundedXaddChunk |
MpscUnboundedXaddArrayQueue | back to summary |
---|---|
public MpscUnboundedXaddArrayQueue(int chunkSize, int maxPooledChunks)
|
MpscUnboundedXaddArrayQueue | back to summary |
---|---|
public MpscUnboundedXaddArrayQueue(int chunkSize) |
drain | back to summary |
---|---|
public int drain(MessagePassingQueue. Overrides io. Implements io. Doc from io. Remove up to limit elements from the queue and hand to consume. This should be semantically similar to:
There's no strong commitment to the queue being empty at the end of a drain. Called from a consumer thread subject to the restrictions appropriate to the implementation. Warning Explicit assumptions are made with regards to
|
fill | back to summary |
---|---|
public int fill(MessagePassingQueue. Overrides io. Implements io. Doc from io. Stuff the queue with elements from the supplier. Semantically similar to: while(relaxedOffer(s.get());There's no strong commitment to the queue being full at the end of a fill. Called from a producer thread subject to the restrictions appropriate to the implementation. Unbounded queues will fill up the queue with a fixed amount rather than fill up to oblivion Warning Explicit assumptions are made with regards to
|
fill | back to summary |
---|---|
public int fill(MessagePassingQueue. Implements io. Doc from io. Stuff the queue with up to limit elements from the supplier. Semantically similar to:
There's no strong commitment to the queue being full at the end of a fill. Called from a producer thread subject to the restrictions appropriate to the implementation Warning Explicit assumptions are made with regards to
|
newChunk | back to summary |
---|---|
pack-priv final MpscUnboundedXaddChunk Implements abstract io.
|
offer | back to summary |
---|---|
public boolean offer(E e) Implements io. Doc from io. Called from a producer thread subject to the restrictions appropriate to the implementation and
according to the
|
peek | back to summary |
---|---|
public E peek() Implements io. Doc from io. Called from the consumer thread subject to the restrictions appropriate to the implementation and
according to the
|
poll | back to summary |
---|---|
public E poll() Implements io. Doc from io. Called from the consumer thread subject to the restrictions appropriate to the implementation and
according to the
|
pollNextBuffer | back to summary |
---|---|
private MpscUnboundedXaddChunk |
relaxedPeek | back to summary |
---|---|
public E relaxedPeek() Implements io. Doc from io. Called from the consumer thread subject to the restrictions appropriate to the implementation. As
opposed to
|
relaxedPoll | back to summary |
---|---|
public E relaxedPoll() Implements io. Doc from io. Called from the consumer thread subject to the restrictions appropriate to the implementation. As
opposed to
|
spinForNextIfNotEmpty | back to summary |
---|---|
private MpscUnboundedXaddChunk |