java集合类

2 篇文章 0 订阅

线程安全:多线程访问同一代码,不会产生不确定的结果。 (与单线程运行结果一样的就是线程安全的)

 

 

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

 

 

Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,

其中阻塞队列的典型例子是BlockingQueue,

非阻塞队列的典型例子是ConcurrentLinkedQueue

 

 BlockingQueue常用的四个实现类

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

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

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

 

栈是后进先出

队列是先进先出

 

 

Stack    堆栈            后进先出LIFO     无 (父类Vector)      

Queue  队列            先进先出FIFO     无

Deque  两端队列      LIFO+FIFO        迭代器(父类Queue子类LinkedList)

 

Queue:

Deque                                  interface

BlockQueue                         interface

ConcurrentLinkedQueue     class

 

Deque:

ArrayDeque                                                      class

LinkedList                                                         class

LinkedBlockingDeque(BlockingDeque)            class

BlockingDeque                                                 interface

 

 

 

 

 

 

 

 

 

 

 

参考:http://blog.csdn.net/xin_jmail/article/details/26157971,
http://chenjumin.iteye.com/blog/2182322,
http://wsmajunfeng.iteye.com/blog/1629354,
http://www.cnblogs.com/linjiqin/archive/2013/05/30/3108188.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值