| 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 | |
| org.jctools.queues.atomic.unpadded | |
| org.jctools.queues.unpadded |
| Modifier and Type | Method and Description |
|---|---|
int |
SpscArrayQueue.drain(MessagePassingQueue.Consumer<E> c) |
int |
MpscArrayQueue.drain(MessagePassingQueue.Consumer<E> c) |
int |
MpscBlockingConsumerArrayQueue.drain(MessagePassingQueue.Consumer<E> c) |
int |
MpscCompoundQueue.drain(MessagePassingQueue.Consumer<E> c) |
int |
SpmcArrayQueue.drain(MessagePassingQueue.Consumer<E> c) |
int |
MpmcArrayQueue.drain(MessagePassingQueue.Consumer<E> c) |
int |
MpscUnboundedArrayQueue.drain(MessagePassingQueue.Consumer<E> c) |
int |
SpscArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
int limit) |
int |
MpscArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
int limit) |
int |
MpscBlockingConsumerArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
int limit) |
int |
MpscUnboundedXaddArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
int limit) |
int |
MpscCompoundQueue.drain(MessagePassingQueue.Consumer<E> c,
int limit) |
int |
SpmcArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
int limit) |
int |
MpmcArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
int limit) |
int |
MpscBlockingConsumerArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
int limit,
long timeout,
TimeUnit unit)
Remove up to limit elements from the queue and hand to consume, waiting up to the specified wait time if
necessary for an element to become available.
|
void |
SpscArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
MessagePassingQueue.WaitStrategy w,
MessagePassingQueue.ExitCondition exit) |
void |
MpscArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
MessagePassingQueue.WaitStrategy w,
MessagePassingQueue.ExitCondition exit) |
void |
MpscBlockingConsumerArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
MessagePassingQueue.WaitStrategy w,
MessagePassingQueue.ExitCondition exit) |
void |
MpscCompoundQueue.drain(MessagePassingQueue.Consumer<E> c,
MessagePassingQueue.WaitStrategy wait,
MessagePassingQueue.ExitCondition exit) |
void |
SpmcArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
MessagePassingQueue.WaitStrategy w,
MessagePassingQueue.ExitCondition exit) |
void |
MpmcArrayQueue.drain(MessagePassingQueue.Consumer<E> c,
MessagePassingQueue.WaitStrategy w,
MessagePassingQueue.ExitCondition exit) |
int |
MessagePassingQueue.drain(MessagePassingQueue.Consumer<T> c)
Remove all available item from the queue and hand to consume.
|
int |
MessagePassingQueue.drain(MessagePassingQueue.Consumer<T> c,
int limit)
Remove up to limit elements from the queue and hand to consume.
|
void |
MessagePassingQueue.drain(MessagePassingQueue.Consumer<T> c,
MessagePassingQueue.WaitStrategy wait,
MessagePassingQueue.ExitCondition exit)
Remove elements from the queue and hand to consume forever.
|
static <E> int |
MessagePassingQueueUtil.drain(MessagePassingQueue<E> queue,
MessagePassingQueue.Consumer<E> c) |
static <E> int |
MessagePassingQueueUtil.drain(MessagePassingQueue<E> queue,
MessagePassingQueue.Consumer<E> c,
int limit) |
static <E> void |
MessagePassingQueueUtil.drain(MessagePassingQueue<E> queue,
MessagePassingQueue.Consumer<E> c,
MessagePassingQueue.WaitStrategy wait,
MessagePassingQueue.ExitCondition exit) |
Copyright © 2013–2024. All rights reserved.