All Classes and Interfaces
Class
Description
A simple implementation of
Map.Entry
.The queue factory produces
Queue
instances based on a best fit to the ConcurrentQueueSpec
.NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
A base data structure for concurrent linked queues.
An MPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks
of the initial size.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
The queue factory produces
Queue
instances based on a best fit to the ConcurrentQueueSpec
.A minimal top level queue interface which allows producer/consumers access via separate interfaces.
The consumer is the object which controls the reading of messages from a
channel.
A producer used by a single thread for writing into a channel.
The receiver interface is implemented by end users in order to receiver data from the channel.
An auto-resizing table of
longs
, supporting low-contention CAS
operations.Common functionality for array backed queues.
A minimal top level queue interface which allows producer/consumers access via separate interfaces.
Consumers are local to the threads which use them.
The queue factory produces
ConcurrentQueue
instances based on a best fit to the ConcurrentQueueSpec
.Deprecated.
Base counter interface.
Basic class representing static striped long counter with
common mechanics for implementors.
Lock-free implementation of striped counter using
CAS primitives.
Wait-free implementation of striped counter using
Java 8 Unsafe intrinsics (lock addq and lock xchg).
A note to maintainers on index assumptions: in a single threaded world it would seem intuitive to assume:
This annotation marks classes and methods which may be public for any reason (to support better testing or reduce
code duplication) but are not intended as public API and may change between releases without the change being
considered a breaking API change (a major release).
This generator takes in an JCTools 'ArrayQueue' Java source file and patches
Unsafe
accesses into
atomic AtomicLongFieldUpdater
.This generator takes in an JCTools 'LinkedQueue' Java source file and patches
Unsafe
accesses into
atomic AtomicLongFieldUpdater
.Base class of the atomic queue generators.
This is used for method substitution in the LinkedArray classes code generation.
Message passing queues are intended for concurrent method passing.
A Multi-Producer-Multi-Consumer queue based on a
ConcurrentCircularArrayQueue
.NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
An MPMC array queue which grows unbounded in linked chunks.
Differently from
Users should be aware that
Differently from
MpmcArrayQueue
it is designed to provide a better scaling when more
producers are concurrently offering.Users should be aware that
MpmcUnboundedXaddArrayQueue.poll()
could spin while awaiting a new element to be available:
to avoid this behaviour MpmcUnboundedXaddArrayQueue.relaxedPoll()
should be used instead, accounting for the semantic differences
between the twos.A Multi-Producer-Single-Consumer queue based on a
ConcurrentCircularArrayQueue
.NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
This is a partial implementation of the
BlockingQueue
on the consumer side only on top
of the mechanics described in BaseMpscLinkedArrayQueue
, but with the reservation bit used for blocking rather
than resizing in this instance.Package Scoped: not part of public API.
Package Scoped: not part of public API.
An MPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks
of the initial size.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
Use a set number of parallel MPSC queues to diffuse the contention on tail.
A Multi-Producer-Single-Consumer ring buffer.
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.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
Intrusive MPSC queue implementation based on Intrusive
MPSC node-based queue as presented on 1024cores by Dmitry Vyukov.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
This is a Java port of the MPSC algorithm as presented
on
1024 Cores by D.
Channel protocol:
- Fixed message size
- 'null' indicator in message preceding byte (potentially use same for type mapping in future)
- Use Vyukov MPMC like algorithm relying on indicator to support in place detection of next element existence
Use an SPSC per producer.
This class is still work in progress, please do not pick up for production use just yet.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
A Multi-Producer-Single-Consumer queue based on same algorithm used for
MpmcArrayQueue
but with the
appropriate weakening of constraints on offer.An MPSC array queue which starts at initialCapacity and grows indefinitely in linked chunks of the initial size.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
An MPSC array queue which grows unbounded in linked chunks.
Differently from
Users should be aware that
Differently from
MpscUnboundedArrayQueue
it is designed to provide a better scaling when more
producers are concurrently offering.Users should be aware that
MpscUnboundedXaddArrayQueue.poll()
could spin while awaiting a new element to be available:
to avoid this behaviour MpscUnboundedXaddArrayQueue.relaxedPoll()
should be used instead, accounting for the semantic differences
between the twos.Common infrastructure for the XADD queues.
Intrusive queue nodes are required to implement this interface.
A lock-free alternate implementation of
ConcurrentHashMap
with better scaling properties and generally lower costs to mutate the Map.A lock-free alternate implementation of
ConcurrentHashMap
with primitive long keys, better scaling properties and
generally lower costs.A simple wrapper around
NonBlockingHashMap
making it implement the
Set
interface.A lock-free alternate implementation of
ConcurrentHashMap
with better scaling properties and generally lower costs to mutate the Map.A multi-threaded bit-vector set, implemented as an array of primitive
longs
.Channel protocol:
- Fixed message size
- 'null' indicator in message preceding byte (potentially use same for type mapping in future)
- Use FF algorithm relying on indicator to support in place detection of next element existence
Deprecated.
A padded version of the
AtomicLong
.JVM Information that is standard and available on all JVMs (i.e.
Power of 2 utility functions.
Deprecated.
A minimal top level queue interface which allows producer/consumers access via separate interfaces.
This is the definition of the API required for the byte code generated by the
ProxyChannelFactory
Deprecated.
This interface is provided for monitoring purposes only and is only available on queues where it is easy to
provide it.
A simplified wrapper around the rage inducing Java compiler API.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
A Single-Producer-Single-Consumer queue backed by a pre-allocated buffer.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator
which can found in the jctools-build module.
Package Scoped: not part of public API.
Package Scoped: not part of public API.
An SPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks
of the initial size.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
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.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
This is a weakened version of the MPSC algorithm as presented
on
1024 Cores by D.
Channel protocol:
- Fixed message size
- 'null' indicator in message preceding byte (potentially use same for type mapping in future)
- Use FF algorithm relying on indicator to support in place detection of next element existence
An SPSC array queue which starts at initialCapacity and grows indefinitely in linked chunks of the initial size.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator
which can found in the jctools-build module.
A Java file object which is used to represent the Java source code coming from a string.
Tagging interface to help testing
A single class templating library for doing runtime code-gen.
This is a little hand cranked, perhaps hacked together util to take a Java
file and dump a trace of where the visitor goes.
Why should we resort to using Unsafe?
To construct class fields which allow volatile/ordered/plain access: This requirement is covered by
To construct class fields which allow volatile/ordered/plain access: This requirement is covered by
AtomicReferenceFieldUpdater
and similar but their performance is arguably worse than the DIY approach
(depending on JVM version) while Unsafe intrinsification is a far lesser challenge for JIT compilers.