前言
Volatile关键字的作用主要有如下两个:
1.线程的可见性:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。
2. 顺序一致性:禁止指令重排序。
一、线程可见性
我们先通过一个例子来看看线程的可见性:
public class VolatileTest {
boolean flag = true;
public void updateFlag() {
this.flag = false;
System.out.println("修改flag值为:" + this.flag);
}
public static void main(String[] args) {
VolatileTest test = new VolatileTest(