Java volatile 关键字详解
Java volatile 关键字详解
1. volatile 的作用与原理
-
可见性保证:
volatile 修饰的变量在修改后,会立即同步到主内存,其他线程读取时直接从主内存获取最新值,确保多线程环境下的可见性。例如:volatile boolean flag = false;
当线程A修改
flag
为true
后,线程B能立即感知到变化。 -
禁止指令重排序:
volatile 通过插入内存屏障(Memory Barrier)禁止编译器和处理器对指令进行重排序,保证代码执行顺序符合预期。例如双重检查锁定(DCL)中,volatile 防止对象初始化未完成就被使用:private volatile stati