深入理解volatile
学习volatile的时候,已经看过synchronized了,synchronized可以锁定对象还可以保证可见性,而volatile是一种轻量级的synchronized,它保证了可见性
阅读并发编程的艺术的时候看到了volatile保证可见性的原理,主要如下:
当我们声明好了voilatile的变量,并对该其变量执行写操作的时候
其汇编指令会多出第二行,这是一条Lock前缀的指令
这个指令主要做了两件事情:
- 将处理器的缓存行写回内存
- 其它处理器的缓存是旧的,要修改,这个时候就根据缓存一致性协议,保证各个处理器的缓存进行更新保持一致
参考:并发编程的艺术