JMM(java内存模型)
Java Memory Model
定义了共享内存中多线程程序读写操作的行为规范,通过这些规则来规范内存对读写的操作从而保证指令的正确性.
JMM内存
分为两块:工作内存和主内存
工作内存
每个线程在创建时都会分配一个工作内存,用以存储线程的私有数据,每个线程只能访问自己独有的工作内存
主内存
包含共享变量,对象,变量等(可能出现线程安全问题)
线程之间同步数据
线程之间是隔离的,要交互需要通过主内存
线程a先将自己的数据同步到主内存,线程b再从主内存同步到自己的内存,实现a和b的数据同步