Provides 100% pure Java mutual exclusion.

Add a Review
1 Download (This Week)
Last Update:
Browse All Files


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.

JavaMutex Web Site




BSD License


  • 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.


Write a Review

User Reviews

Be the first to post a review of JavaMutex!

Additional Project Details

Intended Audience


Programming Language