- 知道jmm定义了主存与工作内存的概念
- jmm三大特性
- volatile不能保证原子性,只能保证可见性与有序性
- volatile的可见性是通过禁用高速缓存实现的
- volatile的有序性是通过内存屏障实现的
- 内存屏障分为写屏障与读屏障,写屏障向上阻挡,读屏障向下阻挡(所谓读和写就是x作为左值时为写x = 0,作为右值为读 例如 y= x)
内存屏障分析
视频见https://www.bilibili.com/video/BV15b4y117RJ?p=80&spm_id_from=pageDriver
加在y的情况
加在x的情况
由于写操作向上挡,因此y可以从下面过去,所以写时volatile变量最好写在最后面
读的时候向下挡,所以写在最上面。