什么是java的并发包??在jdk5之后,java对并发处理进行了新一轮的优化。
集合类实现了线程安全,ConcurrentHashMap就是线程安全的HashMap。
首先需要了解什么是java的中断机制:
有了传送机制,我们就可以实现可重入锁了,ReentrantLock
传送门:
http://blog.csdn.net/eclipser1987/article/details/7301828
并发包使用的是reentrantlock 而不是我们常见的synchronized。我们来比较下他俩的区别:
了解了以上,我们来看一下java的并发包。
传送门:
http://www.cnblogs.com/huangfox/archive/2012/08/16/2642666.html
- ConcurrentHashMap是线程安全的HashMap的实现
- CopyOnWriteArrayList是一个线程安全、并且在读操作时无锁的ArrayList
- CopyOnWriteArraySet是基于CopyOnWriteArrayList的,可以知道set是不容许重复数据的,因此add操作和CopyOnWriteArrayList有所区别,他是调用CopyOnWriteArrayList的addIfAbsent方法。
- ArrayBlockingQueue是一个基于数组、先进先出、线程安全的集合类,其特点是实现指定时间的阻塞读写,并且容量是可以限制的。
总结下:使用并发包就是在读/写操作是,使用了可重入锁,这样可以保证数据的一致性和线程安全。