1. 书籍
  2. 详情

深入理解java内存模型

基本信息

  • 书籍大小:1.3M
  • 书籍语言:简体中文
  • 书籍类别:电子图书
  • 书籍标签: 深入理解java, java教程
  • 购买链接: 京东   淘宝

打开支付宝首页搜“673273051”领红包,领到大红包的小伙伴赶紧使用哦!

相关书籍

内容介绍

深入理解java内存模型是由程晓明推出的java内存模型介绍的软件开发图书,从基础、冲排序、JMM设计等多方面讲述了内存模型的建立和使用,需要的朋友快来绿色资源网下载吧!

java线程之间的通信对程序员完全透明,内存可见性问题很容易困扰java程序员,本文试图揭开java内存模型神秘的面纱。本文大致分三部分:重排序与顺序一致性;三个同步原语(lock,volatile,final)的内存语义,重排序规则及在处理器中的实现;java内存模型的设计目标,及其与处理器内存模型和顺序一致性内存模型的关系。

java内存模型

深入理解java内存模型(一)——基础

深入理解java内存模型(二)——重排序

深入理解java内存模型(三)——顺序一致性

深入理解java内存模型(四)——volatile

深入理解java内存模型(五)——锁

深入理解java内存模型(六)——final

深入理解java内存模型(七)——总结

第1部分,基本概念

包括“并发、同步、主内存、本地内存、重排序、内存屏障、happensbefore规则、as-if-serial规则、数据依赖性、顺序一致性模型、JMM的含义和意义”。

第2部分,同步机制

该部分中就介绍了“同步”的3种方式:volatile、锁、final。对于每一种方式,从该方式的“特性”、“建立的happensbefore关系”、“对应的内存语义”、“实现方式”等几个方面进行了分析说明。实际上,JMM保证“如果程序正确同步,则执行结果与顺序一致性内存模型的结果相同”的机制;而这部分这是确保程序正确同步的机制。

深入理解java<a href=虚拟机" src="http://pic.downcc.com/upload/2017-8/201783174927431530.png" width="403" height="525"/>

第3部分,JMM总结

JMM保证:如果程序是正确同步的,程序的执行将具有顺序一致性。

从JMM设计者的角度来说,在设计JMM时,需要考虑两个关键因素:

(01)程序员对内存模型的使用。程序员希望内存模型易于理解,易于编程。程序员希望基于一个强内存模型(程序尽可能的顺序执行)来编写代码。

(02)编译器和处理器对内存模型的实现。编译器和处理器希望内存模型对它们的束缚越少越好,这样它们就可以做尽可能多的优化(对程序重排序,做尽可能多的并发)来提高性能。编译器和处理器希望实现一个弱内存模型。

JMM设计就需要在这两者之间作出协调。JMM对程序采取了不同的策略:

(01)对于会改变程序执行结果的重排序,JMM要求编译器和处理器必须禁止这种重排序。

(02)对于不会改变程序执行结果的重排序,JMM对编译器和处理器不作要求(JMM允许这种重排序)。

下载地址

打赏