可见性: 对于volatile变量进行读写的时候,Java 内存模型(JMM)会向处理器发送一条lock前缀的指令, 确保对该变量的写操作直接刷回主内存,而其他处理器由于遵守了缓存一致性协议, 也会把这个变量的值从主存中加载到自己的缓存中,以此保证了可见性。 有序性: volatile 关键字会在读写操作前后插入内存屏障,限制指令重排序,从而保证了代码执行的有序性。