Provides 100% pure Java mutual exclusion.

Add a Review
3 Downloads (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.


Write a Review

User Reviews

Be the first to post a review of JavaMutex!

Additional Project Details

Intended Audience


Programming Language




Icons must be PNG, GIF, or JPEG and less than 1 MiB in size. They will be displayed as 48x48 images.