Java进阶-第二十九篇:Java内存模型 - 内存可见性 - 解决方案(上)
在 Java 多线程编程中,内存可见性问题可能会导致程序出现难以调试的错误。volatile
关键字是解决内存可见性问题的重要手段之一。下面将详细介绍 volatile
关键字的原理和使用场景。
1. volatile 关键字原理
volatile 语义
volatile
关键字的主要语义是保证变量的可见性。当一个变量被声明为 volatile
时,对它的写操作会立即同步到主内存,读操作会从主内存中读取最新值。这意味着,当一个线程修改了 volatile
变量的值,其他线程能够立即看到这个修改。
例如,有一个 volatile
变量 flag
:
public class VolatileExample {
p