Publisher Description
Freely redistributable open source 100% pure Java for mutual exclusion. Read-write and read-only reentrant lock, condition variable, atomic wraps for Boolean, Integer, Long, and Reference. Cell pool with optional locking, object exchanger, Intersect.
Features
- 100% pure Java; requires Java SE 8 support for Lambda expressions.
- Does not rely on proprietary JVM internal implementations or JVM internal data structures (unlike the Oracle implementation of java.util.concurrent.* packages).
- Supports java.util.concurrent.locks Lock, ReadWriteLock and Condition instances, read-write and read-only.
- Supports java.util.concurrent.atomic AtomicBoolean, AtomicInteger, AtomicLong, AtomicReference, AtomicMarkedReference, AtomicStampedReference. Adds more functionality.
- Supports java.util.concurrent Exchanger, Semaphore. Adds ExchangerPool class.
- Includes new interfaces and classes for mutual exclusion and concurrent processing.
- New Intersect/Pathway mutual exclusion protocol.
- New SpinLock API for fast path updating of volatile fields.
- New SpinLockOperation for general atomic fetch and store operations while holding a SpinLock.
- New SpinLockList, SpinLockNode doubly-linked list example classes for SpinLockOperation accesses.
- New atomic wrappers for SpinLock usage.
- New volatile wrappers for SpinLockOperation usage.
- SpinLockList supports Iterable, Iterator, ListIterator interfaces.
- New interfaces LatchFactory, LockFactory, ReenterableLockFactory, ReenterableDualLockFactory.
- New interface IntersectFactory and dispenser methods in IntersectLatch, IntersectLimited.
- New ConditionClosure paradigm applied to locks and intersects to support condition variables.
- New ReenterableLockAvailable API to notify the client when the ReenterableLock is fully released.
- Added CountDownLatch and CyclicBarrier, with additional convenience methods.
- Added TrafficBarrier as thread barrier simulating a traffic intersection.
- Added TransferPipe for one-way producer-consumer designs.
- Added SynchronousQueue class, and interfaces TransceivePipe, TransmitPipe, ReceivePipe (and factories).
- Added EventToken and EventTokenSet for a thread to await on one or more events in one or more worker threads.
- Added parallel package for simple worker thread pools.
- FutureWork class for executing Callable instances.
- Includes sample TestMultiServer to demonstrate deadlock-free modularized thread servers using EventTokenSet. The sample servers are lock-free, even when requesting data from other servers.
- Support for ExecutorService, ScheduledExecutorService, CompletionService.
- Includes sample Dining Philosophers solution using the software SpinLock API without deadlocks or starvation.
- ExtendedLock interface for invoking functional interface methods while holding the Lock.
- Add SpeedLock and friends to the locks package. When the application has a fixed number of threads, the SpeedLock offers very high performance for lock acquisition and release.
- SpeedLock is based on SpinLockOperation.
- SpeedLockPool is a Lock with an internal pool of SpeedLock instances. A SpeedLockPool is usable by an unlimited number of threads for very high performance locking.
- SpeedLockDual supports read-write and read-only variants.
- SpeedLockDualPool manages a pool of SpeedLockDual for access by an unlimited number of concurrent Threads.
- SpeedLocks utility class with dispenser methods for the various kinds of SpeedLock and factories.