Photo
THIN LOCKS
Thin Locks provide highly efficient synchronization for languages like Java, and have been incorporated into numerous product and research virtual machines. Thin locks handle the most common locking scenarios with a very short instruction sequence including a single atomic (compare-and-swap) operation. Contention is handled by layering the thin locks protocol on top of a native, heavyweight locking facility (like pthreads) that handles queues of waiting threads. Thin locks require less than one 32-bit word of storage overhead per object.

The paper on Thin Locks was selected as one of the most influential publications in the PLDI conference and will appear in Twenty Years of the ACM Conference on Programming Language Design and Implementation: A Selection (2003) along with a retrospective.

Thin Locks or its variants are in use in many commercial and research Java Virtual Machines (JVMs), including the IBM Java Developer Kit (JDK) for AIX, Linux, z/OS, Windows, and OS/2, VisualAge for Java (the Java engine of WebSphere Site Developer), and the Jikes Research Virtual Machine (RVM).

Thin Locks developed from an earlier locking protocol called Bacon Bits. The original design documents are available on the publications page.