这篇的主题本应该放在最初的几篇,讨论的是并发编程最基础的几个核心概念,但是这几个概念又牵扯到很多的实际技术,比如Java内存模型,各种锁的实现,volatile的实现,原子变量等等,每一个都可以展开写很多,尤其是Java内存模型,网上已经能够有很几篇不错的文章,暂时不想重复造轮子,这里推荐几篇Jave内存模型的资料:
1.
JSR-133 FAQ
2. JSR-133 Cookbook
...
分类:
其他好文 时间:
2014-11-04 09:29:33
阅读次数:
221
上一篇说了虚拟机的内存模型,在说到堆内存的时候我们提到了,堆内存是Java内存中区域最大的一部分,而且垃圾回收器主要就是回收这部分的内容。那么这篇就来介绍一下垃圾回收器的原理以及回收的算法。Java中的垃圾回收器(GC)是Java中比较有特色的一点,不需要我们手动的去管理一个对象,不想C++中的构造函数和析构函数一样,需要程序猿自己去手动的管理,很容易造成内存泄露的问题。当然如果学过OC语言的话,...
分类:
编程语言 时间:
2014-11-02 18:16:12
阅读次数:
242
今天闲来无事来,看一下Java中的内存模型和lajihuisongjizh...
分类:
编程语言 时间:
2014-11-02 15:03:41
阅读次数:
213
经过前两篇的分析,说实话, 现在的我是比较晕的。但仍然坚持自己的学习方法,先自己“理所当然”的理解,再去求证官方说法。毕竟东西是别人定的,规则是别人的。1 http://www.cnblogs.com/boota/p/4040310.html2 http://www.cnblogs.com/boot...
分类:
编程语言 时间:
2014-10-23 16:01:17
阅读次数:
250
现在讨论第二种情况:(第一种情况传送门,单独一个类,有虚析构函数,虚函数)(2)有继承关系,单一继承,父类无虚析构函数,子类有(子类没有就没必要说了)这种情况让我相当晕,照例先贴代码 : 1 #include 2 using namespace std; 3 4 class A 5 { 6 ...
分类:
编程语言 时间:
2014-10-22 19:54:54
阅读次数:
227
由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:
如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载...
分类:
其他好文 时间:
2014-10-21 21:43:46
阅读次数:
231
java 虚拟机自动内存管理。java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同区域1 程序计数器每个线程都有一个独立的计数器,用来指示需要执行的字节码的位置。2 虚拟机栈虚拟机栈是用来描述java方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧用于储存局部变量表...
分类:
编程语言 时间:
2014-10-21 19:37:14
阅读次数:
197
看了两篇关于c++对象内存模型的文章,来源在这里:http://blog.csdn.net/haoel/article/details/3081328/http://blog.csdn.net/haoel/article/details/3081385文章中讲了多种继承模式中虚函数的实际情况,按我的...
分类:
编程语言 时间:
2014-10-21 17:24:41
阅读次数:
187
Java作为一个跨平台的语言,它的实现要面对不同的底层硬件系统,设计一个中间层模型来屏蔽底层的硬件差异,给上层的开发者一个一致的使用接口。Java内存模型就是这样一个中间层的模型,它为程序员屏蔽了底层的硬件实现细节,支持大部分的主流硬件平台。要理解Java内存模型以及一些处理高并发的技术手段,理解一些基本的硬件知识是必须的。这篇会说一下跟并发编程相关的一些硬件知识。
一个基本的CPU执行...
分类:
其他好文 时间:
2014-10-21 13:53:02
阅读次数:
149
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷.....
分类:
其他好文 时间:
2014-10-15 20:14:11
阅读次数:
292