阻塞队列
来源:互联网 发布:淘宝开店宝贝照片拍摄 编辑:程序博客网 时间:2024/06/13 03:25
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。
阻塞队列提供了四种处理方法:
- 抛出异常:是指当阻塞队列满时候,再往队列里插入元素,会抛出IllegalStateException(“Queue full”)异常。当队列为空时,从队列里获取元素时会抛出NoSuchElementException异常 。
- 返回特殊值:插入方法会返回是否成功,成功则返回true。移除方法,则是从队列里拿出一个元素,如果没有则返回null
- 一直阻塞:当阻塞队列满时,如果生产者线程往队列里put元素,队列会一直阻塞生产者线程,直到拿到数据,或者响应中断退出。当队列空时,消费者线程试图从队列里take元素,队列也会阻塞消费者线程,直到队列可用。
- 超时退出:当阻塞队列满时,队列会阻塞生产者线程一段时间,如果超过一定的时间,生产者线程就会退出。
阅读全文
0 0
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- Revit怎样给桥梁里加上预应力钢筋
- 最大似然估计算法
- Android 增强版百分比布局库 为了适配而扩展
- linux ceil函数
- 期望最大化(EM)算法
- 阻塞队列
- 字符串替换--替换字符串中的空格为$$$。要求时间复杂度为O(N)
- Unicode 和 UTF-8、UTF-16之间的区别
- 关于keyCode与键盘上值的对应问题
- 最大后验概率估计算法
- 文章标题
- 【玖哥乱弹】成功的IT人士这样转型AI
- 二叉排序树
- python---高阶函数