自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 资源 (10)
  • 收藏
  • 关注

原创 Condition的await-signal流程详解

大概的整个过程是: 调用await的线程都会进入一个Condition队列。调用signal的线程每一次都会从firstWaiter开始找出未取消的Condition Node放到release队列里,然后调用signal的线程在await或者unlock的时候执行release方法才有机会将其解除阻塞。相对于lock-unlock,正常的流程要简单一些,但是对于中断处理会更为复杂。

2014-12-12 15:53:03 20416 5

原创 ReentrantLock的lock-unlock流程详解

在jdk1.5之前,多线程之间的同步是依靠synchronized来实现。synchronized是java的关键字,直接由jvm解释成为指令进行线程同步管理。因为操作简单,而且现在jdk的后续版本已经对synchronized进行了很多的优化,所以一直是大家编写多线程程序常用的同步工具。那为什么要推出新的同步api呢?jdk1.5发布的时候,synchronized性能并不好,这可能是concurrent包出现的一个潜在原因,但是更重要的是新的api提供了更灵活,更细粒度的同步操作,以满足不同的需求。但是

2014-12-11 21:12:48 27921 16

原创 一道不简单又简单的Google面试题

一道google面试的算法题:“给你一个数组A[0..n],请你在O(n)的时间里构造一个新的数组B[0..n],使得B[i]=A[0]*A[1]*A[2]*…*A[n]/A[i],但是不能使用除法运算。”

2014-12-01 15:04:47 2360

原创 如何用Mac完美编译OpenJDK 7

前段时间为了研究JVM,于是去下了OpenJDK6编译一把,就因为少声卡驱动,又没查到如何解决,结果总是编译不成功,遂放弃。但是近来调试jdk源码的时候,发现很多调试信息都没有,看得我那个辛苦啊。正好一朋友成功编译了OpenJDK7,我就又去下了一个试编,虽然在CentOS下成功了,但是我Mac下又用不了,所以我就花了点时间再次在Mac下弄一次。整体来说还算顺利,现在已经很开心的用上了。

2014-12-01 13:16:29 13085 1

Beginning CouchDB

CouchDB的入门书籍,初学者适用,高清全英文

2012-11-01

50 Tips and Tricks for MongoDB Developers.

MongoDB开发的50个小技巧,挺实用的,不过是全英文。

2012-11-01

Java反编译工具,可反编译jar包

可以反编译单个class文件,也可以反编译整个jar包

2011-05-03

Java学习指南完整版

Java学习指南完整版,内容详细,实例丰富

2009-06-06

Java课程设计,15个经典源代码

有15个经典的程序,方便学习,适合初学者使用

2009-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除