Java内存模型 - 基础
「 JMM 抽象示意图 」
Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式进行,整个通信过程对程序员完全透明。
在Java中,所有实例域、静态域和数组元素都存储在堆内存中,堆内存在线程之间共享。局部变量、方法定义参数和异常处理器参数不会在线程之间共享,它们不会有内存可见性问题,也不受内存模型的影响。
共享变量代指实例域、静态域和数组元素。
Java线程之间的通信由Java内存模型控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见,从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系;线程之间的共享变量存储在主内存中,每个线程都有一个私有的本地内存,本地内存中存储了该线程以 读 / 写 共享变量的副本。
资料:https://www.bilibili.com/video/BV1934y1c7CT/ 强推 河北王校长