java之jvm系列

jvm系列

第一章:从计算机内存到操作系统看jvm内存模型

前言

jvm虚拟机是java开发依赖的基础,其内存模型与实际机器内存的关系,有助于帮助我们深入理解其原理

一、cpu和机器内存

    cpu:负责逻辑计算
    内存:负责数据存储
    cpu和内存进行交互运行,由于内存和cpu的计算速度有较大的差距,为了提高cpu的利用率,处理器结构加入了高速缓存,将运算需要使用的数据复制到缓存中,让CPU运算可以快速进行,计算结束后再把计算结果从缓存同步到朱内存中,这样就缓解了二者之间的速度差距。但是同时也会引起以下两个问题。
    1:可见性问题:假设有两个线程A、B分别在两个不同的CPU上运行,它们共享同一个变量X。如果线程A对X进行修改后,并没有将X更新后的结果同步到主内存,则变量X的修改对B线程是不可见的。这样就会造成可见性问题
    2:重排序问题:假设A、B两个线程共享两个变量X、Y,A和B分别在不同的CPU上运行。在A中先更改变量X的值放到高速缓存区,然后再更改变量Y的值放到高速缓存区。这时有可能发生Y的值被同步回主内存,而X的值没有同步回主内存的情况,此时对于B线程来说是无法感知到X变量被修改的,或者可以认为对于B线程来说,Y变量的修改被重排序到了X变量修改的前面。
   ![在这里插入图片描述](https://img-blog.csdnimg.cn/c8c74344e1e64804b23542036d7b95b2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhb
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值