BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

深入理解Java内存模型

| 作者 程晓明 关注 82 他的粉丝 发布于 2013年5月22日 QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

本期主编:张龙

免费下载阅读

欢迎您

,并为我们提出宝贵的建议。本迷你书大小为: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咨询,感谢支持。

 

 

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT