Java线程内存模型

线程内存模型图

jmm

  • 每个线程中与主内存中的共享变量交互,是将共享变量的副本缓存在自己的工作内存的。

  • 并发编程的三大特性

  1. 可见性
  2. 原子性
  3. 有序性
  • volatile 关键词
    保证共享变量在多线程之间的可见性和有序性,但不能保证原子性,需要借助synchronied这样的锁机制