Java常见集合框架(十七):Queue总结
来源:互联网 发布:淘宝改一口价会降权吗 编辑:程序博客网 时间:2024/05/17 20:08
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。
阅读全文
0 0
- Java常见集合框架(十七):Queue总结
- Java常见集合框架(十四):Queue之Queue、BlockingQueue、AbstractQueue
- Java常见集合框架(十五):Queue之ArrayBlockingQueue、LinkedBlockingQueue
- Java常见集合框架(十六):Queue之DelayQueue、PriorityQueue、PriorityBlockingQueue
- Java常见集合框架(七):List之Stack
- Java常见集合框架(十):Set之TreeSet、HashSet
- Java常见集合框架(十三):Set总结
- Java常见集合框架(十九): Map之Map、AbstractMap、HashMap
- Java常见集合框架(十八): Deque之Deque、BlockingDeque、LinkedBlockingDeque、ArrayDeque
- Java常见集合框架(二十二): Map之Dictionary、Hashtable
- Java常见集合框架(十二):Set之ConcurrentSkipListSet、EnumSet
- Java常见集合框架(二十): Map之LinkedHashMap、SortedMap、NavigableMap、TreeMap
- java集合框架总结(七)
- Java常见集合框架(八):List总结
- Java常见集合框架
- Java常见集合框架(二):Iterable、Collection(List、Set、Queue)、AbstractCollection
- Java常见集合框架(九):Set之Set、AbstractSet
- Java常见集合框架(十一):Set之LinkedHashSet、CopyOnWriteArraySet
- 自然语言处理-简介
- Android中策略模式
- mysql基本语句
- 数据库表到myeclipse实体类映射
- Spring与JDBC
- Java常见集合框架(十七):Queue总结
- ManagementObjectSearcher使用
- Java中去除字符串中空格的几种方法
- Mysql创建存储过程时出现ERROR 1064错误
- mysql GROUP_CONCAT使用
- iOS App打包上架详细流程
- *TEST 9 for NOIP 先打暴力(100/300)
- 计算机图形学-三次Bezier曲线的绘制
- 如何使用Docker加速器