您当前的位置: 首页 >  Java

java持续实践

暂无认证

  • 0浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java多线程 JMM Java内存模型

java持续实践 发布时间:2020-09-05 10:24:40 ,浏览量:0

文章目录
      • 为什么需要JMM
      • 什么是JMM
      • JMM是并发工具类和并发关键字的底层原理
      • 关于JMM最重要的三点内容

为什么需要JMM

由于c语言是不存在内存模型的概念的. 因此它的执行是依赖于处理器的, 导致了不同的处理器的处理结果不一样, 也就无法保证并发安全.

因此需要一个标准, 让多线程的运行结果达到可预期的状态. 不会再出现不同的处理器运行的结果不一致的情况.

什么是JMM

JMM : Java Memory Model JMM 是一组规范, 需要各个JVM的实现来遵循JMM规范, 以便于开发者利用这些规范, 更方便的开发多线程的程序. 如果没有JMM内存模型来规范, 那么很可能经过了在不同CPU的不同的JVM的不同规则的重排序后, 导致不同的虚拟机上运行的结果不一致, 那是很大的问题.

JMM是并发工具类和并发关键字的底层原理

volatile synchronize Lock 等原理都是JMM. 如果没有JMM, 那就需要程序员自己去指定什么时候用内存栅栏(可以简单的理解为: 工作内存与主内存的拷贝与同步.) . 有了JMM规范后, 只需要用同步的工具类和并发相关的关键字就可以开发并发相关的程序了.

关于JMM最重要的三点内容

重排序 可见性 原子性 是JMM最主要的体现,也是最重要的内容.

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0396s