Java的内存模型(JMM模型)

一:定义

1.JMM是在Java在多线程的模式下解决共享数据访问的规范;

2.它屏蔽了各个硬件和操作系统访问的差异;
(JMM 像“统一插座”,不管你插在 Intel、AMD 还是 ARM 的主板上,Java 线程看到/操作的共享变量顺序和可见性规则始终一致,程序员再也不用为不同 CPU 缓存一致性协议或操作系统调度差异写特殊代码)

3.解决了线程间的原子性,可见性和有序性的问题。

二:各个工作区域内的关系

1.所有的共享变量都存储在主内存中

2.每一个线程都有自己的工作内存,且有一个本地变量

3.线程之间的工作内存都不能直接访问

4.线程针对某一个共享变量进行访问的时候,线程不能直接修改主内存中的共享变量,需要把它读取到本地的内存中,才能进行修改,修改完后更新至共享内存

三:现有线程B,想访问线程A中的变量 id

1.线程A读取主内存中的共享id到线程A的本地内存中

2.修改id,并给id值,然后更新到主内存中

3.线程B读取主内存中id的到线程B的本地内存中(这样实现了线程之间的可见性)
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务