【说站】java中volatile变量的原理
2024-10-25
37
java中volatile变量的原理
1、用处
一个线程负责更新变量,其它线程只读取变量(不更新),并根据新的变量值执行相应的逻辑。比如状态标记位置更新,观察模型变量值发布。
2、原理
在volatile写作操作之前插入StoreStore屏障。该屏障不仅保证了屏障前的写作操作和屏障后的写作操作不能重新排序,还保证了volatile写作操作前,任何读写操作都比volatile提交。
在volatile写作操作后面插入StoreLoad屏障。该屏障不仅不会重新排序volatile写作操作和后续的阅读操作,还会更新处理器的缓存,使volatile变量的写作更新能够看到其他线程。
在volatile读取操作后面插入LoadLoad屏障。该屏障不仅不会使volatile的阅读操作和之前的写作操作重新排名,还会更新处理器的缓存,使volatile的变量阅读成为最新值。
在volatile阅读操作的后面插入LoadStore屏障。该屏障不仅禁止volatile浏览操作,还禁止后续任何写作操作重新排序,更新处理器缓存,更新其他线程volatile变量的写作,可以看到volatile浏览操作的线程。
以上就是java中volatile变量的原理,希望对大家有所帮助。更多Java学习指路:Java基础
更新于:27天前赞一波!
相关文章
- 【说站】java方法重载的无效探究
- 【说站】java重载方法的参数设置
- 【说站】java内存溢出的四种情况
- 【说站】javascript判断变量相等的方法整理
- 【说站】python gevent的原理分析
- 【说站】java抽象类和接口的区别探究
- 【说站】java多态中成员如何访问
- 【说站】java代码块的执行顺序是什么
- 【说站】java继承的优缺点分析
- 【说站】java动态绑定如何理解?
- 【说站】java静态绑定是什么
- 【说站】java静态和动态绑定的对比
- 【说站】java稀疏数组是什么
- 【说站】java如何检查内存泄漏
- 【说站】java内存泄漏
- 【说站】java方法重载
- 【说站】java内存泄漏的解决方法
- 【说站】java多态的理解
- 【说站】java数据结构
- 【说站】java程序编好了怎么运行
文章评论
评论问答