`

【推荐】深入理解Java内存模型--电子书

    博客分类:
  • Java
 
阅读更多

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

本期主编:张龙

http://www.infoq.com/cn/minibooks/download/java_memory_model

 

  • 基础
    • 并发编程模型的分类
    • Java内存模型的抽象
    • 重排序
    • 处理器重排序与内存屏障指令
    • happens-before
  • 重排序
    • 数据依赖性
    • as-if-serial 语义
    • 程序顺序规则
    • 重排序对多线程的影响
  • 顺序一致性
    • 数据竞争与顺序一致性保证
    • 顺序一致性内存模型
    • 同步程序的顺序一致性效果
    • 未同步程序的执行特性
  • VOLATILE
    • volatile的特性
    • volatile写-读建立的happens before关系
    • volatile写-读的内存语义
    • volatile内存语义的实现
    • JSR-133为什么要增强volatile的内存语义
    • 锁的释放-获取建立的happens before 关系
    • 锁释放和获取的内存语义
    • 锁内存语义的实现
    • concurrent包的实现
  • FINAL
    • 写final域的重排序规则
    • 读final域的重排序规则
    • 如果final域是引用类型
    • 为什么final引用不能从构造函数内“逸出”
    • final语义在处理器中的实现
    • JSR-133为什么要增强final的语义
  • 总结
    • 处理器内存模型
    • JMM,处理器内存模型与顺序一致性内存模型之间的关系
    • JMM的设计
    • JMM的内存可见性保证
    • JSR-133对旧内存模型的修补
    • 个人简介
    • 参考文献

 

读者反馈/投稿:editors [at] cn.infoq.com

商务合作:sales [at] cn.infoq.com,联系电话:15810407783

重要提示:

http://www.infoq.com/cn/minibooks/download/java_memory_model

如果您无法成功下载,请先在网站右上角登录,然后再次刷新本页面,重新下载即可。有任何问题请直接拨打010-64738142咨询,感谢支持。

分享到:
评论

相关推荐

    深入java虚拟机 高清pdf 高清高清高清

    2. **内存模型**:书中详细阐述了Java内存模型(JMM),包括堆内存、栈内存、方法区、本地方法栈和程序计数器等组成部分。了解这些内存区域的分配与回收机制,有助于避免内存泄漏和提高程序性能。 3. **垃圾收集与...

    Java并发编程实践--电子书.rar

    《Java并发编程实践》这本书是Java开发者深入理解并发编程的重要参考资料。...通过阅读这本书,你可以深入理解Java并发编程的理论和实践,提升你的编程能力,为构建高并发、高性能的系统打下坚实基础。

    java高并发程序设计(原版电子书)

    9. **Java内存模型**:深入解析Java内存模型(JMM),理解数据一致性问题,如volatile的内存语义和happens-before原则。 10. **并发编程实战**:提供实际案例分析和练习,帮助读者将理论知识应用于实际项目,增强...

    scjp 电子书 -- 考试必备

    10. **JVM原理**:包括类加载机制、内存模型(堆、栈、方法区等)以及JVM性能优化技巧。 11. **Java API**:熟悉Java标准库中的各种类和接口,如Math类、Date类、Calendar类等。 通过这本书,考生不仅可以系统地...

    计算机专业基础理论电子书合集06----编程语言:java (2)

    - `深入理解java虚拟机(带目录) 周志明.pdf` 是Java程序员的必读之作,详细阐述了JVM的工作原理,包括类加载机制、内存模型、垃圾回收、性能优化等方面,对于提升程序运行效率至关重要。 3. **反射机制**: - ...

    JVM 完整深入解析.pdf

    下面将详细介绍JVM中的运行时数据区,以及Java内存模型(JMM)的知识点。 ### JVM运行时数据区 #### 程序计数器 程序计数器是当前线程所执行的字节码的行号指示器,是线程私有的内存区域。由于Java是多线程并发...

    core-java电子书

    2. **类与对象**:深入理解面向对象编程(OOP)的核心——类与对象,包括封装、继承、多态等原则,以及接口的使用。 3. **集合框架**:Java集合框架是组织和管理数据的重要工具,包括List、Set、Queue、Map等接口,...

    Java并发编程实践-电子书

    此外,书中可能还会涉及线程安全的设计模式、死锁与活锁的问题、线程通信(例如`wait()`、`notify()`和`notifyAll()`)以及Java内存模型等内容,这些都是进行高效并发编程不可或缺的知识。 总之,《Java并发编程...

    Thinkingin Java电子书

    《Thinking in Java》是一本备受推崇的Java编程教材,由Bruce Eckel撰写,被誉为Java学习者的必读之作。这本书深入浅出地介绍了Java语言的核心...对于希望深入理解Java语言的程序员来说,这是一本不可或缺的参考书籍。

    Java入门电子书

    9. **Java虚拟机(JVM)**:学习JVM的工作原理,包括类加载机制、类的生命周期以及JVM的内存模型。 10. **Java标准库**:熟悉Java标准库中的常用类和包,例如String、Date、Math、Arrays等,以及IO、NIO、网络编程...

    java-instantcode-developing.rar_java nio

    instantcode-developing-applications-using-java-nio.17016.chm"文件很可能是详细讲解如何使用Java NIO进行应用开发的电子书或文档,涵盖了从基础概念到高级特性的全面内容,可以帮助开发者深入理解和掌握Java NIO...

    Java学习电子书合集

    这些内容有助于开发者深入理解Java平台的运行机制,提升编写高效、稳定代码的能力。 XML(可扩展标记语言)在数据交换和配置文件中广泛应用。学习《XML》可能包括XML的语法、DTD(文档类型定义)、Schema、DOM...

    JAVA编程电子书专题下载

    - **内容概述**:深入探讨Java虚拟机(JVM)的工作原理及架构设计,对于理解Java程序运行时环境至关重要。 - **适用人群**:高级Java开发者及系统架构师。 - **核心知识点**: - JVM架构组成(类加载器、执行引擎、...

    电子书-Thinking In Java

    9. **垃圾回收与内存管理**:书中详细介绍了Java的垃圾回收机制,帮助开发者理解如何有效地管理内存,避免内存泄漏。 10. **泛型**:Java 5引入的泛型是一种强大的类型系统增强,能提高代码的类型安全性和可读性,...

    java基础知识电子书

    通过以上概述,我们可以了解到《Java基础知识电子书》不仅全面介绍了Java的基本概念和发展历程,而且还深入探讨了Java的编程过程、虚拟机机制、安全特性和环境配置等方面的知识。这对于Java新手而言是非常宝贵的学习...

    Java高并发经典文档-MOBI-可在电子书里查看

    - **Java内存模型(JMM)**:理解JMM如何保证线程间的可见性、有序性和原子性。 - **volatile关键字**:分析volatile如何实现线程间共享变量的可见性,并防止指令重排序。 8. **Future与Callable** - **Future...

Global site tag (gtag.js) - Google Analytics