Class | Description |
---|---|
ConcurrentCircularArrayQueue<E> |
A concurrent access enabling class used by circular array based queues this class exposes an offset computation
method along with differently memory fenced load/store methods into the underlying array.
|
ConcurrentSequencedCircularArrayQueue<E> | |
MpmcArrayQueue<E> |
A Multi-Producer-Multi-Consumer queue based on a
ConcurrentCircularArrayQueue . |
Pow2 | |
SpmcArrayQueue<E> | |
SpscArrayQueue<E> |
A Single-Producer-Single-Consumer queue backed by a pre-allocated buffer. This implementation is a mashup of the
Fast Flow algorithm with an optimization of the offer
method taken from the BQueue algorithm (a
variation on Fast Flow).
For convenience the relevant papers are available in the resources folder: 2010 - Pisa - SPSC Queues on Shared Cache Multi-Core Systems.pdf 2012 - Junchang- BQueue- Efficient and Practical Queuing.pdf This implementation is wait free. |
UnsafeAccess |
All use of this class MUST first check that UnsafeAccess.isUnsafeAvailable() == true
otherwise NPEs will happen in environments without "suc.misc.Unsafe" such as Android.
|