volatile关键字

volatile关键字

线程A和线程B存在共享数据,当线程A修改了共享数据,B线程没有及时获取到最新的值,如果还在使用原先的值,就会出现问题。

Volatile关键字:强制线程每次在使用的时候,都会看一下共享区域最新的值。

volatile关键字可被用来修饰成员变量,具备两层含义:

  1. 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
  2. 禁止进行指令重排序。

注意: volatile不能保证原子性