内存屏障
来源:3-4 线程安全性-可见性
![](http://img1.sycdn.imooc.com/user/57176605000181cb07410741-100-100.jpg)
黎明的烬
2018-06-09
jimin老师。;我最近在看java并发艺术,根据作者的42页volatile重排序规则表描述;volatile写之前是普通读 已经考虑到volatile写之前,加过StoreStore屏障了, 要不要再加LoadStore屏障;
写回答
1回答
-
你好,volatile本身是只具备可见性,而不具备原子性的,那些内存屏障是在编译时遇到volatile加入的指令,我们是无法对其改变的。
jvm设计的这些关键字每个都有自己的特性,每个也有解决不了的问题,因此就设计上我感觉是没问题,我们自己要根据需要去选择的使用。比如volatile不具备原子性,导致课程里把count使用volatile修饰时,依旧无法保证线程安全性。这说明volatile并不适合这种场合,这种场合更适合使用synchronized,我们也没必要要求每个关键字都可以解决相同的问题,其实也没那个必要,我们根据关键字的特性去使用就可以了。
不知道我说的你是否明白,体会一下132018-06-09
相似问题