JavaMutex

By Author: xtarka
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.

Feature

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

QScript

V2.1.1 compatible with Processing 2 & 3. A powerful yet simple to use scripting language that can be used to evaluate expressions and simple algorithms. In fact it is the only evaluator I know that supports complex numbers and vectors without the need for additional configuration. The emphasis is o.........

Similar: 11%

Happy Java Library

Helps to develop and test event-based multi-threaded Java application. Because of method called as API-Evolution the Happy Java Library is fully downward compatible. The library contains following functionality: MultiLock, Parallel loops, Collections, Controllers, Generators, Delegates, Streams....

Similar: 11%

Aspose for Eclipse

Aspose for Eclipse project enables Eclipse IDE users to create a new Eclipse project through an Aspose Project Wizard. Through this wizard, the developers can select and download the latest Aspose File Format Java libraries and samples of their choice....

Similar: 10%

Immutable Collections for Java

Library providing immutable/persistent collection classes for Java. While collections are immutable they provide methods for adding and removing values by creating new modified copies of themselves. Each copy shares as much as possible of its structure with other copies to minimize memory consumpt.........

Similar: 9%

.Net Runtime Library for Delphi

Delphi developers can access .Net libraries through COM technology which requires Library registrations and a whole lot of stuff before the inter-process communication between the Delphi Type Library objects and the .Net Library object types can be established. The era of creating and registering a .........

Similar: 9%

Aspose for NetBeans

Aspose for NetBeans project enables NetBeans IDE users to create a new NetBeans project through an Aspose Project Wizard. Through this wizard, developers can select and download the latest Aspose File Format Java libraries and samples of their choice....

Similar: 9%

Simple components for Ada

The Simple components for Ada library provides implementations of smart pointers for automatically collected objects (using reference counting), object persistence, unbounded and bounded arrays of smart pointers, generic unbounded arrays of private objects and plain pointers, generic sets, maps, B-t.........

Similar: 9%

JSONXML

Stand-alone Java library implementing parser/formatter/comparator/validator for JSON/XML-like text formats oriented on JSON-like object model (list,map,scalar + reflection). Library is designed to maximize adaptivity via set of extendable modules....

Similar: 9%

LocalJS

Build Cloud Desktop Application with Web Pages. Deployed from Cloud, Run on Desktop, Developed with HTML + CSS + JavaScript. Two Simple Steps turn your HTML pages into Cloud Desktop Application: Find more at http://localjs.org/...

Similar: 9%

JDynamiTe, Dynamic Template in Java

JDynamiTe is a tool which allows you to dynamically create documents in any format from "template" documents. And very few lines of code (or no line at all!) are needed to do that. Some typical usage domains of JDynamiTe are: - dynamic Web pages creation, - text document generation, - source c.........

Similar: 8%