基础巩固之图解Java内存模型

Java内存模型的抽象示意图:

在Java中,所有的对象域静态域以及数组元素都存放在堆内存中,堆内存在各个线程之间共享,为主内存。
从上图看,线程A如果要和线程B之间要通信的话,要经过如下几个步骤:

  • 线程A先将本地工作内存A中变更过的变量更新到主内存中去。
  • 线程B到主内存中去读取线程A之前更新过的共享变量

  • 本地内存A本地内存B有主内存中的共享变量x的副本,当线程A执行完毕后,更新x的值为1,临时存放在自己的本地内存中,线程A线程B需要通信的时候,线程A首先会把自己本地内存中修改后的x值更新到主内存中,此时主内存中的x值变为1了,随后,线程B到主内存中读取线程A更新后的x值,此时线程B的本地内存x值也就变为1了

小结:
由上图可知:线程间的通信过程必须要经过主内存。

参考:
《Java并发编程的艺术》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值