Package org.metasyntactic.thread.concurrent

Interface Summary
Barrier Barriers serve as synchronization points for groups of threads that must occasionally wait for each other.
BoundedChannel A channel that is known to have a capacity, signifying that put operations may block when the capacity is reached.
Channel Main interface for buffers, queues, pipes, conduits, etc.
Executor Interface for objects that execute Runnables, as well as various objects that can be wrapped as Runnables.
Monitor Main interface for locks, gates, and conditions.
Puttable This interface exists to enable stricter type checking for channels.
ReadWriteLock ReadWriteLocks maintain a pair of associated locks.
Rendezvous.RendezvousFunction Interface for functions run at rendezvous points
Takable This interface exists to enable stricter type checking for channels.
ThreadFactory Interface describing any class that can generate new Thread objects.

Class Summary
BoundedBuffer Efficient array-based bounded buffer class.
CountDown A CountDown can serve as a simple one-shot barrier.
CyclicBarrier A cyclic barrier is a reasonable choice for a barrier in contexts involving a fixed sized group of threads that must occasionally wait for each other.
DefaultChannelCapacity A utility class to set the default capacity of BoundedChannel implementations that otherwise require a capacity argument
FirstInFirstOutSemaphore A First-in/First-out implementation of a Semaphore.
FirstInFirstOutSemaphore.FirstInFirstOutWaitQueue Simple linked list queue used in FirstInFirstOutSemaphore.
ForkJoinTask Abstract base class for Fork/Join Tasks.
ForkJoinTask.Parallel A new Par, when executed, runs the tasks provided in the constructor in parallel using coInvoke(tasks).
ForkJoinTask.Sequence A new Sequence, when executed, invokes each task provided in the constructor, in order.
ForkJoinTask.Wrap A ForkJoinTask that holds a Runnable r, and calls when executed.
ForkJoinTaskRunner Specialized Thread subclass for running ForkJoinTasks.
ForkJoinTaskRunnerGroup A stripped down analog of a ThreadGroup used for establishing and managing ForkJoinTaskRunner threads.
Latch A latch is a boolean condition that is set at most once, ever.
LinkedQueue A linked list based channel implementation.
Mutex A simple non-reentrant mutual exclusion lock.
PrioritySemaphore A Semaphore that grants requests to threads with higher Thread priority rather than lower priority when there is contention.
QueuedSemaphore Abstract base class for semaphores relying on queued wait nodes
QueuedSemaphore.WaitQueue Base class for internal queue classes for semaphores, etc.
ReaderPreferenceReadWriteLock A ReadWriteLock that prefers waiting readers over waiting writers when there is contention.
ReentrantLock A lock with the same semantics as builtin Java synchronized locks: Once a thread has a lock, it can re-obtain it any number of times without blocking.
Rendezvous A rendezvous is a barrier that: Unlike a CyclicBarrier, is not restricted to use with fixed-sized groups of threads.
Rendezvous.Rotator The default rendezvous function.
Semaphore Base class for counting semaphores.
SynchronizedBoolean A class useful for offloading synch for boolean instance variables.
SynchronizedInt A class useful for offloading synch for int instance variables.
SynchronizedVariable Base class for simple, small classes maintaining single values that are always accessed and updated under synchronization.
WaiterPreferenceSemaphore An implementation of counting Semaphores that enforces enough fairness for applications that need to avoid indefinite overtaking without necessarily requiring FIFO ordered access.
WriterPreferenceReadWriteLock A ReadWriteLock that prefers waiting writers over waiting readers when there is contention.

Exception Summary
BrokenBarrierException Thrown by Barrier upon interruption of participant threads
TimeoutException Thrown by synchronization classes that report timeouts via exceptions.