JUC集合-BlockingQueue
2018-01-12 20:10
323 查看
BlockingQueue 阻塞队列,支持两个附加操作。
1,在队列为空时,获取元素的线程会等待对列变为非空。
2,在队列为满时,存储元素的线程会等待对列可用。
使用场景:
生产者往对列里添加元素
消费者从对列里拿元素
操作
抛出异常:满队列时,执行入队会抛出异常;空队列时执行出队会抛出异常 。
返回特殊值:入队操作会返回布尔值;出队操作成功返回操作值,失败返回空值。
一直阻塞:满队列时,执行入队会进入条件等待队列,线程阻塞;空队列时,执行出队会进入条件等待队列,线程阻塞 。
超时退出:满队列时,执行入队会阻塞生产者线程一段时间,如果超过一定的时间,生产者线程就会退出。
1,在队列为空时,获取元素的线程会等待对列变为非空。
2,在队列为满时,存储元素的线程会等待对列可用。
使用场景:
生产者往对列里添加元素
消费者从对列里拿元素
操作
方法\处理 | 抛异常 | 返回特殊值 | 一直阻塞 | 超时退出 |
入队 | add(e) | offer(e) | put(e) | offer(e, time, unit) |
出队 | remove | poll | take | poll(time, unit) |
查询 | element | peek |
返回特殊值:入队操作会返回布尔值;出队操作成功返回操作值,失败返回空值。
一直阻塞:满队列时,执行入队会进入条件等待队列,线程阻塞;空队列时,执行出队会进入条件等待队列,线程阻塞 。
超时退出:满队列时,执行入队会阻塞生产者线程一段时间,如果超过一定的时间,生产者线程就会退出。
相关文章推荐
- 03.JUC 集合 - BlockingQueue
- Java多线程系列--“JUC集合”08之 LinkedBlockingQueue
- Java并发集合——ArrayBlockingQueue ,LinkedBlockingQueue,ConcurrentHashMap
- Java多线程系列--“JUC集合”01之 框架
- JUC (一) ——集合类
- Java集合, LinkedBlockingQueue源码解析(常用于并发编程)
- Java多线程系列--“JUC集合”10之 ConcurrentLinkedQueue
- Java多线程系列--“JUC集合”01之 框架
- 【目录】JUC集合框架目录
- Java多线程系列--“JUC集合”07之 ArrayBlockingQueue
- java-并发集合-阻塞队列 LinkedBlockingQueue 演示
- Java并发库(十九):同步集合类的使用BlockingQueue、
- JUC集合-09之 LinkedBlockingDeque
- Java多线程系列--“JUC集合”06之 ConcurrentSkipListSet
- Java集合类(十六)JUC中的集合--ConcurrentHashMap jdk1.7
- Java多线程系列--“JUC集合”03之 CopyOnWriteArraySet
- Java多线程系列--“JUC集合”08之 LinkedBlockingQueue
- 学习笔记 07 --- JUC集合
- J.U.C--集合--生产者与消费者队列BlockingQueue
- JUC集合-10之 ConcurrentLinkedQueue