Java volatile

理解 Java volatile 关键字

Java提供的一种轻量级的同步机制。

原因

  1. CPU多级缓存

  2. CPU指令重排

作用

  1. 写入时,不进入CPU缓存,强制写入内存中(JMM会把该线程对应的本地内存中的变量强制刷新到主内存中去,这个写入操作会导致其他线程中的缓存无效

  2. 读取时,强制从内存中读取

  3. 限制指令重排

效果

  1. 可以解决并发编程中的可见性、有序性问题

  2. volatile关键字不能保证原子性(原子性指的是一个操作是不可分割的,要么完整地执行,要么不执行,没有中间状态)

  3. 保证了不同线程对这个变量进行操作时的可见性

  4. 禁止进行指令重排序

参考文档

https://dioxide-cn.ink/archives/volatile-and-barrier


Java volatile
https://shikai.info/archives/java-volatile
作者
石 凯
发布于
2023年08月01日
许可协议