volatile原理

volatile是什么,工作原理分析

发布 : Java培训   发布时间:2021-10-12 17:17:43

品牌型号:联想小新Pro13/系统版本:windows10

volatile是轻量级的synchronized,在多线程并发编程中发挥着同步共享变量、禁止处理器重排序的重要作用。

Java中的volatile关键字保证多线程操作时变量的可见性,如果一个变量被volatile所修饰,在每次数据变化之后,其值都会被强制刷入主存。而其他处理器的缓存由于遵守了缓存一致性协议,也会把这个变量的值从主存加载到自己的缓存中。这就保证了一个volatile在并发编程中,其值在多个缓存中是可见的。

volatile除了可以保证数据的可见性之外,还可以禁止指令重排优化等。被volatile修饰的变量的操作,会严格按照代码顺序执行,load->add->save 的执行顺序就是:load、add、save。

其它答案
牛仔很忙2020-06-22 18:56:36

线程写 volaitle 变量的步骤为:

改变线程工作内存中 volatile 变量副本的值

将改变后的副本的值从工作内存刷新到主内存


 相关推荐