首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java内存储器模型(JMM) 资料整理(转载)

2012-11-01 
Java内存模型(JMM) 资料整理(转载)转载自 ---- http://blog.csdn.net/oldrat/article/details/5797238?Jav

Java内存模型(JMM) 资料整理(转载)

转载自 ---- http://blog.csdn.net/oldrat/article/details/5797238

?

Java内存模型 常常在面试中问到,这一块要好好扫盲一下。

?

内存模型决定了 多线程编程正确性的判定,实用性上也是很值得好好调查一下。

?

这个问题这么重要,要好好了解一下。所谓知者不惑,有了让大家“知”的资料就不怕了。

?

?

〇、术语

1. 内存模式,wikipedia有这个词条

http://en.wikipedia.org/wiki/Memory_model

http://en.wikipedia.org/wiki/Memory_model_%28computing%29

内存模型描述的是 线程如何和内存交互。

?

2. Java内存模式?

http://en.wikipedia.org/wiki/Java_Memory_Model

?

3. C内存模式(Intel内存模式)

http://en.wikipedia.org/wiki/C_memory_model

一、官方一手资料

Java规范中的信息

?

JMM的说明在Java语言规范 中给出了官方说明,在 17.4 Memory Model 一节,

http://java.sun.com/docs/books/jls/third_edition/html/memory.html#17.4

JVM规范 中也有相关的内容,CHAPTER 8 Threads and Locks

http://java.sun.com/docs/books/jvms/second_edition/html/Threads.doc.html

?

规范中会提到Consistency model、Sequential Consistency等概念,参见下面的资料整理

http://blog.csdn.net/oldrat/archive/2010/08/10/5802803.aspx

?

?

二、经典书籍

?-

1. 《Java并发编程实践》

China-pub上的链接

第16章 Java存储模型,篇幅很少只有不到30面。

读JMM是为了写多线程,这本书整本都是在说并发编程,很多已经说清了,讲JMM自然可以少些。

?

非常推荐这本书,面向的是Java5,讲了并发编程的原则、模式和最佳实践。

这本书可以让你对并发编程的能力上一个Level。

如果你没有看过这本书,在并发的认识水平是有鸿沟的。(这句话引用GoF设计模式那本书的评价,呵呵~。)

# 如果你是大牛,请无视上面对本书的评价。

# 精通JVM规范 ,熟悉JVM实现 的大牛,自然是超出了讨论的Level。^_^

# 不过每次都从JVM实现,来指导Java并发编程,开发效率怕是不高,还是很推荐看看这本书。

?

这本书已经绝版,大家可以在这家Taobao店买到这本书 。

# 我可不是托,呵呵。在这家店买过书,这家的翻印的效果不错,价格也很好。

?


2. 《深入JVM》

China-pub上的链接

第20章 线程同步

第9章 垃圾回收。和JMM不是很相关,但回收的是内存 ,所以也列上了。

?

这本书也绝版,还是那家Taobao店中可以买到这本书 。

?

-

三、辅助信息

-

1. IBM的developerworks上不错的信息

IBM的developerworks上信息的质量很高,可以好好看一下。

?

Java 理论与实践: 修复 Java 内存模型,第 1 部分

http://www.ibm.com/developerworks/cn/java/j-jtp02244/

?

Java 理论与实践: 修复 Java 内存模型,第 2 部分

http://www.ibm.com/developerworks/cn/java/j-jtp03304/

?

讲了内存模型,更重要的是讲了Java5在内存模型上的修复。这个问题也常常会问到。

?

?

Java 理论与实践: Mustang 中的同步优化 ?

http://www.ibm.com/developerworks/cn/java/j-jtp10185/

?

Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制

http://www.ibm.com/developerworks/cn/java/j-jtp10264/

?

?

?

结合安全发布与有效的不可变性来提升性能

http://www.ibm.com/developerworks/cn/java/j-hashmap.html

?

Java 理论与实践: 变还是不变? ?

http://www.ibm.com/developerworks/cn/java/j-jtp02183/

?

讲到发布问题,编程实战中的重要问题。

?

Java 理论和实践: 安全构造技术

http://www.ibm.com/developerworks/cn/java/j-jtp0618/

?

?

?

轻松使用线程: 同步不是敌人

http://www.ibm.com/developerworks/cn/java/j-threads/

?

轻松使用线程: 减少争用?

http://www.ibm.com/developerworks/cn/java/j-threads/index2.html

轻松使用线程: 不共享有时是最好的

?

?

http://www.ibm.com/developerworks/cn/java/j-threads/index3.html

?

?

Java 理论与实践: 并发集合类

http://www.ibm.com/developerworks/cn/java/j-jtp07233/


双重检查锁定及单例模式

http://www.ibm.com/developerworks/cn/java/j-dcl.html

?

?

IBM站点上对“Java 内存模型”的Google搜索页

结果包含了上面列出的内容

http://www.google.com.hk/search?hl=zh-CN&safe=strict&q=Java+%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B+site%3Aibm.com&aq=f&aqi=&aql=&oq=&gs_rfai=

?

2. 其它

?

Java内存模型与volatile

http://jiangzhengjun.javaeye.com/blog/652532

?

?

Java内存模型 的 一个专题

挑些看吧,

http://www.soidc.net/topic/java+%C4%DA%B4%E6%C4%A3%D0%CD

热点排行