【说站】java中volatile变量的原理
2024-10-25
77
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基础
更新于:2个月前赞一波!2
相关文章
- 【说站】mysql中系统变量的两种类型
- 【说站】mysql中自定义变量有哪些
- 【说站】java类加载器的分类
- 【说站】java类的两种引用方法
- 【说站】java转义字符
- 【说站】java基本数据类型
- 【说站】java动态和静态语言的比较
- 【说站】Python继承的原理分析
- 【说站】java中Class类的概念介绍
- 【说站】java多态的向上转型是什么
- 【说站】java向下转型是什么意思
- 【说站】java重写发生的条件
- 【说站】java动态绑定怎么用
- 【说站】java多态的好处
- 【说站】java对象池的使用步骤
- 【说站】java向上转型发生的时机
- 【说站】java中变量的使用注意
- 【说站】java类加载的过程
- 【说站】java反射如何调用指定的属性
- 【说站】java RMI的工作过程
文章评论
评论问答