Java 线程之间的通信对程序员完全透明,内存可见性问题很容易困扰 java 程序员,本文试图揭开 java 内存模型神秘的面纱。本文大致分三部分:重排序与顺序一致性;三个同步原语(lock,volatile,final)的内存语义,重排序规则及在处理器中的实现;java 内存模型的设计,及其与处理器内存模型和顺序一致性内存模型的关系。
本期主编:张龙
免费下载阅读
欢迎您 [DOWNLOAD] ,并为我们提出宝贵的建议。本迷你书大小为:1.3M,您需要完整下载,方可正常阅读。
本书目录
- 基础
- 并发编程模型的分类
- 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
重要提示:如果您无法成功下载,请先在网站右上角登录,然后再次刷新本页面,重新下载即可。有任何问题请直接拨打 010-64738142 咨询,感谢支持。
评论 (17 条评论)