《深入理解Java虚拟机》笔记:volatile的实现原理
volatile在并发程序中有两个特点:
1、保证其修饰变量的线程间可见性;2、禁止对其修饰变量的指令重排。
这两个特点都与volatile底层实现有关。
通过观察汇编代码可以发现,在对volatile变量赋值后,会多执行一条指令:
lock add1 $0x0,(%esp)
这条指令的作用是:将本处理器的缓存写入内存,并使其他处理器的缓存无效。
显然通过这条命令可以让前面对volatile变量的修改对其他处理器立即可见。
因为在Java中,
...
原创
2020-09-17 22:22:06 ·
205 阅读 ·
0 评论