0%

JAVA-volatile关键字

Volatile是Java虚拟机提供的**轻量级**的同步机制

三大特性

  • 保证可见性
  • 不保证原子性
  • 禁止指令重排

内存可见性

volatile修饰的变量,不拷贝副本到工作内存,直接操作主内存,任何修改都可以其他线程读取到。
volatile的可以保证写入和读取 64 位值(long类型和double类型 )的原子性。

单例中 volatile + synchronized 的作用

volatile 可见性、禁止指令重排
synchronized保证操作的原子性、一致性和可见性。