Volatile是Java虚拟机提供的**轻量级
**的同步机制
三大特性
- 保证可见性
- 不保证原子性
- 禁止指令重排
内存可见性
volatile修饰的变量,不拷贝副本到工作内存,直接操作主内存,任何修改都可以其他线程读取到。
volatile的可以保证写入和读取 64 位值(long类型和double类型 )的原子性。
单例中 volatile + synchronized 的作用
volatile 可见性、禁止指令重排
synchronized保证操作的原子性、一致性和可见性。