Java常见集合框架(十七):Queue总结
2017-10-19 15:40
393 查看
BlockingQueue
BlockingQueue相比Queue多了两个阻塞操作:put、take。不允许使用NUL元素。
主要用于生产者-使用者队列。
BlockingQueue 利用ReentrantLock实现线程安全、利用Condition实现阻塞。
所有队列实现BlockingQueue,故都拥有以上特性。
BlockingQueue 方法以四种形式出现。
ArrayBlockingQueue
一个由数组结构组成的有界阻塞队列。队列按 FIFO(先进先出)原则对元素进行排序。
容量构造实例时指定,不允许扩容。
LinkedBlockingQueue
一个由链表结构组成的有界阻塞队列。队列按 FIFO(先进先出)排序元素。
容量固定,默认值Integer.MAX_VALUE ,不允许扩容。
链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低。
利用两个锁ReentrantLock(takeLock、putLock)、两个Condition(notEmpty、notFull)进行读写分离,提高效率,利用Node构成链表式队列。
DelayQueue
一个使用优先级队列实现的无界阻塞队列。具有延迟功能。
基于PriorityQueue。
虽说无界,但PriorityQueue是数组结构形式存储,故最大为Integer.MAX_VALUE。
PriorityBlockingQueue
一个支持优先级排序的无界阻塞队列。同样基于PriorityQueue。
无界的说法也同上。
PriorityQueue
一个基于优先级堆的无界优先级队列。非同步。
优先级队列不允许使用 null 元素。
元素以数组结构形式存储,故最大值为Integer.MAX_VALUE。
相关文章推荐
- Java常见集合框架(十四):Queue之Queue、BlockingQueue、AbstractQueue
- Java常见集合框架(十六):Queue之DelayQueue、PriorityQueue、PriorityBlockingQueue
- Java基础知识强化之集合框架笔记74:各种集合常见功能 和 遍历方式总结
- Java常见集合框架(十五):Queue之ArrayBlockingQueue、LinkedBlockingQueue
- Java常见集合框架(二):Iterable、Collection(List、Set、Queue)、AbstractCollection
- Java常见集合框架(八):List总结
- 黑马程序员 11 Java基础教学 - 11 - 集合框架总结
- 黑马程序员 Java面向对象——集合框架总结
- Java面向对象——集合框架总结
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数
- 黑马程序员_java基础知识总结(3)集合框架
- 黑马程序员--集合框架知识总结和泛型--java学习日记7(基础知识)
- 黑马程序员 Java基础知识总结-j集合框架
- java总结(集合框架)
- 【黑马程序员】java集合框架学习总结
- 黑马程序员---一DAY17总结--java中你必须掌握的集合框架技术
- 黑马程序员_JavaAPI——集合框架笔记总结
- 黑马程序员:Java基础总结----集合框架的工具类
- 黑马程序员-Java基础总结08——集合与集合框架(…
- Java集合框架学习总结