volatile特性
多线程中可见性
可见性:就是一个线程修改了变量,其他线程可以知道。
保证可见性的常见方 法:volatile、synchronized、final(一旦初始化完成,其他线程就可见)
volatile基本上是JVM提供的最轻量级的同步机制,用volatile修饰的变量,对所有的线程可见,即对volatile变量所做的写操作能立即反应到其他线程中。
用volatitle修饰的变量,在多线程环境下仍然是不安全的
用volatile修饰的变量,是禁止指令重排优化的
适合使用volatile的场景:
运算结果不依赖当前的值
或者能确保只有一个线程修改变量的