采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
1.volatile变量在的可见性是由什么保证的?是内存屏障吗? 2使用volatile变量为什么能禁止重排序,也是因为内存屏障?
你好,volatile属于java关键字,他的特性是由JVM来保证的。JVM来将volatile编译成cpu指令执行时,会引入内存屏障,来保证读取相关的变量强制从主内存获取到的最新的值。深入理解java虚拟机一书中有介绍 指令重排序不能越过内存屏障,但这不一定是根本的因果原因。具体可以参考这篇回答:https://segmentfault.com/q/1010000006767915
谢谢老师
老师那我可不可以这样理解,volatile的可见性和禁止指令重排都是因为加入了内存屏障
嗯,都是和内存屏障有关系
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.1k 15
3.5k 12
1.2k 12