synchronized

Java 多线程同步的核心机制

什么是 synchronized?

synchronized 是 Java 语言提供的关键字,用于实现线程同步,确保多个线程在访问共享资源时不会发生数据竞争或不一致的问题。

使用方式

底层原理

synchronized 基于 JVM 的 Monitor(监视器)机制实现。每个对象都有一个与之关联的 monitor,当线程进入 synchronized 代码块时,会尝试获取该 monitor 的所有权。

在 JDK 6 之后,JVM 对 synchronized 进行了大量优化,包括偏向锁、轻量级锁和重量级锁的升级机制,显著提升了性能。

注意事项

示例代码

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public int getCount() {
        return count;
    }
}