volatite

  1. 保证可见性
    1. jvm java虚拟机

    2. jmm java内存模型

  • 硬盘 ==== 内存8g ===缓存=== CPU

  • 各个线程对主内存中共享变量的操作都是各个线程各自拷贝到自己的工作内存进行操作后再写回主内存中的。

  • 这就可能存在一个线程A修改了共享变量X的值但还未写回主内存时,另一个线程B又对准内存中同一个共享变量X进行操作

  • 但此时A线程工作内存中共享变量X对线程B来说并不是可见,这种工作内存与主内存同步存在延迟现象就造成了可见性问题。

  1. 不保证原子性

  2. 禁止指令重排