java集合类

 

多线程情况下,应尽量使用java.util.concurrent包下的类.Collections.synchronizedMap();

 

 
java集合类_第1张图片
 BlockingQueue常用的四个实现类

1) ArrayBlockingQueue: 基于数组的阻塞队列,内部维护了一个定长数组,以便缓存队列中的数据对象,规定大小的BlockingQueue,必须指明其大小.其所含的对象是以FIFO(先入先出)顺序排序的,队列中的锁是没有分离的,即生产和消费用的是同一个锁.

2) LinkedBlockingQueue:基于链表的阻塞队列,其内部也维持着一个数据缓冲队列(该队列由一个链表构成),大小不定的BlockingQueue,若其构造函数带一个规定大小的参数,生成的BlockingQueue有大小限制,若不带大小参数,所生成的BlockingQueue的大小由Integer.MAX_VALUE来决定.其所含的对象是以FIFO(先入先出)顺序排序的,队列中的锁是分离的,即生产用的是putLock,消费是takeLock.

3) PriorityBlockingQueue:类似于LinkedBlockQueue,但其所含对象的排序不是FIFO,而是依据对象的自然排序顺序或者是构造函数的Comparator决定的顺序.
4) SynchronousQueue:特殊的BlockingQueue,对其的操作必须是放和取交替完成的.

 

转:http://blog.csdn.net/xin_jmail/article/details/26157971,http://chenjumin.iteye.com/blog/2182322,http://wsmajunfeng.iteye.com/blog/1629354

 

你可能感兴趣的:(java集合类)