volatile关键字的作用是保证多个线程之间变量的可见性,那么他的原理是什么呢
上一篇文章我们讲到java的内存模型:
详情可见:JMM内存模型
volatile在JMM内存的主线上加使用了MESI缓存一致性协议,这里引入了两个名词
总线:简单理解的是各大CPU和主内存之间交互必须经过的一条线路,也就是说数据传输必须通过他
MESI缓存一致性协议: 简单理解就是当线程A从主内存读取数据,并做修改后,线程B是立马可见修改后的变量
所以volatile关键字是在上面的流程图中加了一层
volatile关键字的作用是保证多个线程之间变量的可见性,那么他的原理是什么呢
上一篇文章我们讲到java的内存模型:
详情可见:JMM内存模型
volatile在JMM内存的主线上加使用了MESI缓存一致性协议,这里引入了两个名词
总线:简单理解的是各大CPU和主内存之间交互必须经过的一条线路,也就是说数据传输必须通过他
MESI缓存一致性协议: 简单理解就是当线程A从主内存读取数据,并做修改后,线程B是立马可见修改后的变量
所以volatile关键字是在上面的流程图中加了一层