您的位置:首页 > 产品设计 > UI/UE

Queue

2017-09-18 00:00 10 查看
非阻塞的Queue

ConcurrentLinkedQueue

常用的并发队列有阻塞队列和非阻塞队列,前者使用锁实现,后者则使用CAS非阻塞算法实现,使用非阻塞队列一般性能比较好,下面就看看常用的非阻塞ConcurrentLinkedQueue是如何使用CAS实现的。

BlockingQueue

可能报异常返回布尔值可能阻塞 设定等待时间
入队 add(e) offer(e) put(e)offer(e, timeout, unit)
出队 remove() poll() take()poll(timeout, unit)
查看element() peek()
ArrayBlockingQueue,其构造函数必须带一个int参数来指明其大小

LinkedBlockingQueue,若其构造函数带一个规定大小的参数,生成的BlockingQueue有大小限制,若不带大小参数,所生成的BlockingQueue的大小由Integer.MAX_VALUE来决定

PriorityBlockingQueue,其所含对象的排序不是FIFO,而是依据对象的自然排序顺序或者是构造函数的Comparator决定的顺序

DelayQueue队列中每个元素都有个过期时间,并且队列是个优先级队列,当从队列获取元素时候,只有过期元素才会出队列。

SynchronousQueue是一个没有数据缓冲的BlockingQueue
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  queue