Fundamentals 13 min read

Synchronized and Lock's Underlying Implementation Analysis

This article analyzes the underlying implementations of Java's synchronized and Lock mechanisms, comparing their differences and exploring the role of AbstractQueuedSynchronizer (AQS) in Lock's functionality.

New Oriental Technology
New Oriental Technology
New Oriental Technology
Synchronized and Lock's Underlying Implementation Analysis

In JDK1.5, Java introduced the Lock interface to address the limitations of synchronized, providing more flexible synchronization mechanisms. The article explores the differences between synchronized and Lock, focusing on their implementations and the role of AbstractQueuedSynchronizer (AQS) in Lock's functionality.

Key topics include:

Comparison of synchronized and Lock

Lock interface and its implementations (ReentrantLock, ReadWriteLock)

AbstractQueuedSynchronizer (AQS) as the core of Lock implementations

Nonfair vs. fair locks

Thread synchronization mechanisms

The analysis covers the bytecode instructions for synchronized (monitorenter and monitorexit) and the step-by-step process of acquiring and releasing locks using ReentrantLock, including the role of CAS operations and the CLH queue in thread scheduling.

Code examples demonstrate the implementation details, such as the use of volatile state variables and atomic operations to manage lock ownership and reentrancy.

LockAQSsynchronizedJava ConcurrencyThread SynchronizationJava Programming
New Oriental Technology
Written by

New Oriental Technology

Practical internet development experience, tech sharing, knowledge consolidation, and forward-thinking insights.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.