java volatile

volatile实现原理:

1.如果变量加了volatile修饰,在写的时候,jvm会向cpu发送一个lock指令,表示需要将缓存数据写会到主存,同时lock指令会锁住这一块缓存,用缓存一致性来保证写回的原子操作。

2.如果变量加了volatile修饰,在读的时候,缓存回写到主存会导致其他处理器的缓存无效,这是通过控制协议来维护这种一致性的。

参考文章: http://www.infoq.com/cn/articles/ftf-java-volatile

原文地址:https://www.cnblogs.com/wuMing-dj/p/6604679.html