volatile

August 22, 2022 · View on GitHub

线程可见性变量,一个线程A对一个变量a的修改,另一个线程B,可以到A线程的修改a之后新的值

但是注意volatile 在进行算数运行的时候,并不能保证线程安全

本质

  • 解决指令重排序的问题
  • 内存的可见性(内存平整,写无效,写直达)

问题

  • 多线程并发修改变量为什么会出现线程安全问题?本质原因是什么?
  • volatile 是如何解决上面的线程安全问题的呢?