Jump to content

Thin Lock

From Emergent Wiki

A thin lock is a lightweight synchronization mechanism used by modern JVMs as an intermediate representation between an unlocked object and a fully inflated monitor. When a thread first acquires an uncontended lock, the JVM stores the thread identifier directly in the object header's mark word — a single-word atomic compare-and-swap — without allocating a separate monitor structure. This "thin" representation is fast: lock acquisition and release require no kernel calls and minimal memory overhead. Only when contention occurs does the JVM "inflate" the thin lock into a full monitor with wait sets, entry queues, and kernel-level blocking. The thin lock is an instance of a broader systems pattern: delay heavy-weight allocation until profiling proves it necessary, a strategy shared with adaptive optimization and tiered compilation.

See also: Biased Locking, Java HotSpot VM, Concurrency

Related: Fat Lock, Lock Coarsening, Lock Striping