Interface | Description |
---|---|
InterruptibleAwaitingThreads |
Java's interface to extend support for Interruptible Awaiting Threads.
|
Signal |
A simple signal abstraction module.
|
Sync |
Java's interface for locks.
|
SyncCV |
Java's interface for condition variables.
|
Class | Description |
---|---|
Actor |
An actor module (object-oriented approach for message passing concurrent programming).
|
AtomicLockingMutexSet |
Atomic locking operation on an unordered set of mutexes.
|
Barrier |
A thread barrier abstract class.
|
BinarySemaphore |
Binary semaphore class.
|
BoundedSemaphore |
Bounded semaphore class (a semaphore that cannot exceed a given value).
|
Channel<T> |
A simple module support a (generic) communication channel between two threads.
|
CObject |
A replacement for Object to ease and augment the usage of concurrent related methods.
|
Console |
System output related static utilities (supporting colors).
|
CRunnable |
A replacement for Runnable to handle exceptions (and other details).
|
CThread |
Thread related static utilities.
|
DynamicBarrier |
A dynamically sized thread barrier class.
|
Event |
A simple module supporting two valued events.
|
Exchanger<T> |
A simple module support a (generic) exchanger (bidirectional) communication channel between two threads.
|
ExternalBarrier |
An externally triggered thread barrier abstract class.
In this type of barrier, the barrier is released by an externally usable (public) method ( release ). |
FixedBarrier |
A fixed sized thread barrier class.
|
Future<T> |
Actor's Futures class.
|
GroupMutex |
Group mutex.
|
GroupMutexComposedCV |
A composed condition variable for an exterior GroupMutex with a list of alternative
internal Sync objects (used, for example, to integrate internal, external and conditional
synchronization of shared objects).
|
GroupMutexCV |
Group exclusion condition variable class.
|
InternalBarrier |
An internally triggered thread barrier abstract class.
In this type of barrier, the participating threads are the ones that release the barrier (when the number of waiting threads reach the barrier defined size). |
Metronome |
This class implements an active (thread) metronome class, able to periodically
synchronize any * number of threads.
|
Mutex |
Mutual exclusion lock.
|
MutexCV |
Mutex condition variable class.
|
MutexSetCV |
Mutex set condition variable class.
|
PersistentSignal |
A persistent signal module (signals are kept until a successful delivery).
|
RWEx |
Readers-writer exclusion class.
|
RWExCV |
Readers-writer exclusion condition variable class.
|
Semaphore |
A standard counting semaphore class.
|
SyncState | |
TransientSignal |
A transient signal module (signals thrown away if no one is waiting).
|
TriggeredBarrier |
An externally triggered thread barrier class.
In this type of barrier, the barrier is released by an externally usable (public) method ( release ). |
WrapRunnable |
Runnable wrap class.
|
Enum | Description |
---|---|
CThread.TerminationPolicy |
Termination policy for thread created through current CThread's object.
|
GroupMutex.Priority |
Locking priority choices:
CURRENT_ACTIVE_GROUP: active group is always preferred; GROUP_NUMBER_INCREASING: the higher the group number the higher its priority; GROUP_NUMBER_DECREASING: the lower the group number the higher its priority; TIME_OF_ARRIVAL: priority ordered by decreasing waiting time (not yet implemented!). |
Mutex.Priority |
Locking priority choices:
UNDEFINED: undefined priority (default); TIME_OF_ARRIVAL: priority ordered by decreasing waiting time (not yet implemented!). |
RWEx.Priority |
Locking priority choices:
WRITER: priority to writers (a waiting writer prevents new readers from getting the lock); READERS: priority to readers (a waiting reader prevents new writers from getting the lock); TIME_OF_ARRIVAL: priority ordered by decreasing waiting time (not yet implemented!). |
Exception | Description |
---|---|
ThreadInterruptedException |
InterruptedException unchecked exception replacement.
|
This package implements a Design-by-Contract
based concurrency library for programming language Java.
One of its mains features is its simplification of the usage of native Java concurrency constructs
(wait, notify, notifyAll, join, etc.) by replacing the annoying
InterruptedException checked exception with an equivalent
ThreadInterruptedException
unchecked exception
(easing the development of concurrent Java code, and preventing a serious source of
Java bugs due to the erroneous algorithm of ignoring exceptions).
This library is also the base of a new approach for object-oriented concurrent programming in which both models of thread communication -- shared object and message passing -- are supported. In the shared object model it is possible to fully synchronize a shared object with all the three aspects required -- internal, conditional and external -- without forcing the internal synchronization of the object to a monitor (mutual exclusion). In fact, one may safely use an internal synchronization scheme based on CoW (copy-on-write) or transactions, and still be able to externally synchronize the shared object.
This package contains the following groups of modules:
Base library modules:
InterruptibleAwaitingThreads
: Java's interface to extend support for Interruptible Awaiting ThreadsCThread
: a replacement of ThreadCRunnable
: a replacement of Runnable (to correctly handle exceptions and to register start time)ThreadInterruptedException
: InterruptedException unchecked exception replacementCObject
: a replacement of Object for Sync and/or SynCV purposesWrapRunnable
: transforms a Runnable into a CRunnableUtility modules:
Console
: output to a console supporting colorsMetronome
: implementation of an active (thread) metronome class, able to periodically synchronize any number of threadsElementary synchronization modules:
Signal
: a simple signal abstraction moduleTransientSignal
: a transient signal modulePersistentSignal
: a persistent signal moduleEvent
: a simple module supporting two valued eventsSemaphore
: a standard general semaphoreBoundedSemaphore
: a semaphore bounded by a maximum valueBinarySemaphore
: a binary semaphoreChannel
: a simple module support a (generic) communication channel between two threadsExchanger
: a simple module support a (generic) exchanger (bidirectional) communication channel between two threadsLocking modules:
Sync
: Java's interface for locksSyncCV
: Java's interface for condition variablesMutex
: a POSIX-threads alike mutual exclusion synchronization classMutexCV
: a POSIX-threads alike mutex condition variable classRWEx
: a readers-writer exclusion synchronization classRWExCV
: a readers-writer exclusion condition variable classGroupMutex
: a group exclusion synchronization classGroupMutexCV
: a group exclusion condition variable classSyncState
: an internal module (to ease the implementaion of getStateAndUnlock/recoverState services)GroupMutexComposedCV
: composed group mutex CV to allow a CV applicable to a GroupMutex and one of any element of an array of Sync objectsMutexSetCV
: a Mutex set condition variable classAtomicLockingMutexSet
: atomic locking operation on an unordered set of mutexesBarrier modules:
Barrier
: a thread barrier interfaceInternalBarrier
: an internally triggered thread barrier abstract classExternalBarrier
: an externally triggered thread barrier abstract classFixedBarrier
: a fixed sized thread barrier classDynamicBarrier
: a dynamically sized thread barrier classTriggeredBarrier
: an externally triggered thread barrier classMessage passing modules:
Actor
: an actor communication classFuture
: actor's future results class