page contents

volatile 关键字的作用是什么?

轩辕小不懂 发布于 2022-04-25 15:45
阅读 398
收藏 0
分类:Java开发
3496
Nen
Nen
- 程序员

对于可见性,Java 提供了 volatile 关键字来保证可见性和禁止指令重排。volatile 提供 happens-before 的保证,确保一个线程的修改能对其他线程是可见的。当一个共享变量被 volatile 修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。

从实践角度而言,volatile 的一个重要作用就是和 CAS 结合,保证了原子性,详细的可以参见 java.util.concurrent.atomic 包下的类,比如 AtomicInteger。

volatile 常用于多线程环境下的单次操作(单次读或者单次写)。

请先 登录 后评论