Package | Description |
---|---|
org.jctools.queues |
This package aims to fill a gap in current JDK implementations in offering lock free (wait free where possible)
queues for inter-thread message passing with finer grained guarantees and an emphasis on performance.
At the time of writing the only lock free queue available in the JDK is ConcurrentLinkedQueue which is an unbounded multi-producer, multi-consumer queue which
is further encumbered by the need to implement the full range of Queue methods. |
org.jctools.queues.atomic |
Modifier and Type | Class and Description |
---|---|
(package private) class |
BaseLinkedQueue<E>
A base data structure for concurrent linked queues.
|
(package private) class |
BaseLinkedQueueConsumerNodeRef<E> |
(package private) class |
BaseLinkedQueuePad0<E> |
(package private) class |
BaseLinkedQueuePad1<E> |
(package private) class |
BaseLinkedQueuePad2<E> |
(package private) class |
BaseLinkedQueueProducerNodeRef<E> |
class |
BaseMpscLinkedArrayQueue<E>
An MPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks
of the initial size.
|
(package private) class |
BaseSpscLinkedArrayQueue<E> |
class |
ConcurrentCircularArrayQueue<E>
Common functionality for array backed queues.
|
(package private) class |
ConcurrentCircularArrayQueueL0Pad<E> |
class |
ConcurrentSequencedCircularArrayQueue<E> |
class |
FFBuffer<E> |
(package private) class |
FFBufferConsumerField<E> |
(package private) class |
FFBufferL1Pad<E> |
(package private) class |
FFBufferL2Pad<E> |
(package private) class |
FFBufferL3Pad<E> |
(package private) class |
FFBufferProducerField<E> |
class |
MpmcArrayQueue<E>
A Multi-Producer-Multi-Consumer queue based on a
ConcurrentCircularArrayQueue . |
(package private) class |
MpmcArrayQueueConsumerIndexField<E> |
(package private) class |
MpmcArrayQueueL1Pad<E> |
(package private) class |
MpmcArrayQueueL2Pad<E> |
(package private) class |
MpmcArrayQueueL3Pad<E> |
(package private) class |
MpmcArrayQueueProducerIndexField<E> |
class |
MpscArrayQueue<E>
A Multi-Producer-Single-Consumer queue based on a
ConcurrentCircularArrayQueue . |
(package private) class |
MpscArrayQueueConsumerIndexField<E> |
(package private) class |
MpscArrayQueueL1Pad<E> |
(package private) class |
MpscArrayQueueL2Pad<E> |
(package private) class |
MpscArrayQueueL3Pad<E> |
(package private) class |
MpscArrayQueueMidPad<E> |
(package private) class |
MpscArrayQueueProducerIndexField<E> |
(package private) class |
MpscArrayQueueProducerLimitField<E> |
class |
MpscChunkedArrayQueue<E>
An MPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks
of the initial size.
|
(package private) class |
MpscChunkedArrayQueueColdProducerFields<E> |
class |
MpscCompoundQueue<E> |
(package private) class |
MpscCompoundQueueColdFields<E> |
(package private) class |
MpscCompoundQueueConsumerQueueIndex<E> |
(package private) class |
MpscCompoundQueueL0Pad<E>
Use a set number of parallel MPSC queues to diffuse the contention on tail.
|
(package private) class |
MpscCompoundQueueMidPad<E> |
class |
MpscGrowableArrayQueue<E>
An MPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks,
doubling theirs size every time until the full blown backing array is used.
|
class |
MpscLinkedQueue<E>
This is a direct Java port of the MPSC algorithm as presented
on
1024 Cores by D.
|
class |
MpscLinkedQueue7<E> |
class |
MpscLinkedQueue8<E> |
class |
MpscRelaxedArrayQueue<E>
This class is still work in progress, please do not pick up for production use just yet.
|
class |
MpscSequencedArrayQueue<E>
A Multi-Producer-Single-Consumer queue based on same algorithm used for
MpmcArrayQueue but with the
appropriate weakening of constraints on offer. |
(package private) class |
MpscSequencedArrayQueueConsumerField<E> |
(package private) class |
MpscSequencedArrayQueueL1Pad<E> |
(package private) class |
MpscSequencedArrayQueueL2Pad<E> |
(package private) class |
MpscSequencedArrayQueueProducerField<E> |
class |
MpscUnboundedArrayQueue<E>
An MPSC array queue which starts at initialCapacity and grows indefinitely in linked chunks of the initial size.
|
class |
SpmcArrayQueue<E> |
(package private) class |
SpmcArrayQueueConsumerIndexField<E> |
(package private) class |
SpmcArrayQueueL1Pad<E> |
(package private) class |
SpmcArrayQueueL2Pad<E> |
(package private) class |
SpmcArrayQueueL3Pad<E> |
(package private) class |
SpmcArrayQueueMidPad<E> |
(package private) class |
SpmcArrayQueueProducerIndexCacheField<E> |
(package private) class |
SpmcArrayQueueProducerIndexField<E> |
class |
SpscArrayQueue<E>
A Single-Producer-Single-Consumer queue backed by a pre-allocated buffer.
|
(package private) class |
SpscArrayQueueColdField<E> |
(package private) class |
SpscArrayQueueConsumerIndexField<E> |
(package private) class |
SpscArrayQueueL1Pad<E> |
(package private) class |
SpscArrayQueueL2Pad<E> |
(package private) class |
SpscArrayQueueL3Pad<E> |
(package private) class |
SpscArrayQueueProducerIndexFields<E> |
class |
SpscChunkedArrayQueue<E>
An SPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks
of the initial size.
|
class |
SpscGrowableArrayQueue<E>
An SPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks,
doubling theirs size every time until the full blown backing array is used.
|
class |
SpscLinkedQueue<E>
This is a weakened version of the MPSC algorithm as presented
on
1024 Cores by D.
|
class |
SpscUnboundedArrayQueue<E>
An SPSC array queue which starts at initialCapacity and grows indefinitely in linked chunks of the initial size.
|
Modifier and Type | Method and Description |
---|---|
static <E> int |
MessagePassingQueueUtil.drain(MessagePassingQueue<? extends E> queue,
MessagePassingQueue.Consumer<? super E> c) |
static <E> int |
MessagePassingQueueUtil.drain(MessagePassingQueue<? extends E> queue,
MessagePassingQueue.Consumer<? super E> c,
int limit) |
static <E> void |
MessagePassingQueueUtil.drain(MessagePassingQueue<? extends E> queue,
MessagePassingQueue.Consumer<? super E> c,
MessagePassingQueue.WaitStrategy wait,
MessagePassingQueue.ExitCondition exit) |
Modifier and Type | Class and Description |
---|---|
(package private) class |
AtomicReferenceArrayQueue<E> |
(package private) class |
BaseLinkedAtomicQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
BaseLinkedAtomicQueueConsumerNodeRef<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
BaseLinkedAtomicQueuePad0<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
BaseLinkedAtomicQueuePad1<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
BaseLinkedAtomicQueuePad2<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
BaseLinkedAtomicQueueProducerNodeRef<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
class |
BaseMpscLinkedAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
BaseSpscLinkedAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
class |
MpmcAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpmcAtomicArrayQueueConsumerIndexField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpmcAtomicArrayQueueL1Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpmcAtomicArrayQueueL2Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpmcAtomicArrayQueueL3Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpmcAtomicArrayQueueProducerIndexField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
class |
MpscAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpscAtomicArrayQueueConsumerIndexField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpscAtomicArrayQueueL1Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpscAtomicArrayQueueL2Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpscAtomicArrayQueueL3Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpscAtomicArrayQueueMidPad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpscAtomicArrayQueueProducerIndexField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpscAtomicArrayQueueProducerLimitField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
class |
MpscChunkedAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
MpscChunkedAtomicArrayQueueColdProducerFields<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
class |
MpscGrowableAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
class |
MpscLinkedAtomicQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
class |
MpscRelaxedAtomicArrayQueue<E> |
class |
MpscUnboundedAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SequencedAtomicReferenceArrayQueue<E> |
class |
SpmcAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpmcAtomicArrayQueueConsumerIndexField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpmcAtomicArrayQueueL1Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpmcAtomicArrayQueueL2Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpmcAtomicArrayQueueL3Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpmcAtomicArrayQueueMidPad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpmcAtomicArrayQueueProducerIndexCacheField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpmcAtomicArrayQueueProducerIndexField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
class |
SpscAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpscAtomicArrayQueueColdField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpscAtomicArrayQueueConsumerIndexField<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpscAtomicArrayQueueL1Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpscAtomicArrayQueueL2Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpscAtomicArrayQueueL3Pad<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
(package private) class |
SpscAtomicArrayQueueProducerIndexFields<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
|
class |
SpscChunkedAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
class |
SpscGrowableAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
class |
SpscLinkedAtomicQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|
class |
SpscUnboundedAtomicArrayQueue<E>
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
|