volatile
volatile是一个关键字,一般用来标记一个变量,他的作用是强制线程从公共内存中读取变量的值,而不是从线程本地缓存中读取变量的值。
- 保证了 可见性和有序性,但是不能保证原子性
- 实现原理:使用主内存对线程可见,(内存屏障和缓存一致性)---(对于被 volatile 关键字修饰的变量,访问它的时候并不会从线程缓存中获取值,而是直接从主内存中读取最新的值。同时,每次对 volatile 变量的写操作都会立即刷新到主内存中。)
- 使用场景:单例模式
具体请看:volatile关键字解析