java 的内存模型(JMM)
1B29AE03-E7E0-486C-B928-214BF24D5E42.png
- 主内存
java内存模型规定所有变量存放在主内存中 类比硬件中的内存
- 工作内存
每个线程有自己的工作内存 类比处理器的高速缓冲 工作内存中存放的是该线程使用的变量在主内存中的副本拷贝
读写主内存的过程read load 读操作 必须顺序执行但是不需要连续执行 例如 read a read b load b load a 而且必须成对出现
store write 写操作 和上边的一样 把工作内存中的变量写回到主内存
线程不能直接读写主内存 他需要把需要的变量拷贝到自己的工作内存中 然后进行读写
对内存的读写很慢 处理器的运算速度很快 所以处理器对内存的直接读写效率低 引入了高速缓存
将要处理的数据先从内存中复制到高速缓存中 让处理器运算 运算结束后 在从高速缓存写到内存中 处理器无需等待内存的读写 提高了cpu的利用率









网友评论