码迷,mamicode.com
首页 > 编程语言 > 详细

[笔记][思维导图]读深入理解JAVA内存模型整理的思维导图

时间:2015-07-28 13:01:13      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:java   内存   内存可见性   volatile      

本人记忆差,整理这个思维导图,相当于较认真的看了一遍,整个思维导图,基本上就是对原文的拷贝。
有了层级关系。和本人自己的一些理解。由于思维导图弄出来的图片大于100M了。所以就放出源文件,
更方便的阅读查阅。在csdn太穷了。下载2积分。有需要的希望意思意思。我也要去下载资料呢。(下载地址在最后)

有几点我觉得是看这个本书或则思维导图。你要明白的是:
1. 什么是内存可见性
2. 在java程序中,在底层执行的代码指令并不是完全按照顺序执行的-有重排序的存在
3. volatile 是一个和硬件的位数、数据的位数相关的概念,实际上和多线程是无关。

例:long:64位,在32位的硬件上操作long需要两次来往(寄存器和内存间),就可以需要volatile(多线程)来保证当前线程完全写入64位,其它线程才能读或写在64位硬件上操作long(64位),用不用volatile一点影响都没有(机器指令已经保证了这一点)
如果这个无误的话,那么就验证了 volatile的两个特性,可见性和原子性。然而,想用代码来展示出错效果的话,貌似写不出来,
有用volatile来保证同步性的。但是这个的确是误用的,volatile只是保证该变量的读写,并不保证 复合操作的同步性。所以应该记住volatile的两个特性就行了

4.正是因为有了重排序和数据竞争才出现了多线程并发安全问题
5.什么是逸出?:对象还没构造完成 引用已经被其他地方使用了 - 称为逸出
6.final的修饰的变量正确的初始化方法
下面是整理的思维导图层级截图展示
技术分享
技术分享
技术分享

下载地址:http://download.csdn.net/detail/mr_zhuqiang/8939419

版权声明:本文为博主原创文章,未经博主允许不得转载。

[笔记][思维导图]读深入理解JAVA内存模型整理的思维导图

标签:java   内存   内存可见性   volatile      

原文地址:http://blog.csdn.net/mr_zhuqiang/article/details/47103407

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!