博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QueueAPI记录
阅读量:5114 次
发布时间:2019-06-13

本文共 851 字,大约阅读时间需要 2 分钟。

队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就是说,队列以一种先进先出的方式管理数据,如果你试图向一个 已经满了的阻塞队列中添加一个元素或者是从一个空的阻塞队列中移除一个元索,将导致线程阻塞.在多线程进行合作时,阻塞队列是很有用的工具。工作者线程可 以定期地把中间结果存到阻塞队列中而其他工作者线线程把中间结果取出并在将来修改它们。队列会自动平衡负载。如果第一个线程集运行得比第二个慢,则第二个 线程集在等待结果时就会阻塞。如果第一个线程集运行得快,那么它将等待第二个线程集赶上来。下表显示了jdk1.5中的阻塞队列的操作:

 

add        增加一个元索                     如果队列已满,则抛出一个IIIegaISlabEepeplian异常

remove   移除并返回队列头部的元素    如果队列为空,则抛出一个NoSuchElementException异常
element  返回队列头部的元素             如果队列为空,则抛出一个NoSuchElementException异常
offer       添加一个元素并返回true       如果队列已满,则返回false
poll         移除并返问队列头部的元素    如果队列为空,则返回null
peek       返回队列头部的元素             如果队列为空,则返回null
put         添加一个元素                      如果队列满,则阻塞
take        移除并返回队列头部的元素     如果队列为空,则阻塞

 

remove、element、offer 、poll、peek 其实是属于Queue接口。 

 

阻塞队列的操作可以根据它们的响应方式分为以下三类:aad、removee和element操作在你试图为一个已满的队列增加元素或从空队列取得元素时 抛出异常。当然,在多线程程序中,队列在任何时间都可能变成满的或空的,所以你可能想使用offer、poll、peek方法。这些方法在无法完成任务时 只是给出一个出错示而不会抛出异常。

转载于:https://www.cnblogs.com/xmzJava/p/6952719.html

你可能感兴趣的文章
[数位dp] Jzoj P4239 光棍
查看>>
167. Two Sum II - Input array is sorted两数之和
查看>>
面试中关于Java你所需知道的的一切
查看>>
由一个activity跳转到另一个activity
查看>>
PLSQL
查看>>
浮动float的一些规则
查看>>
跳频通信(梅文华)pdf
查看>>
Java基础-重要版本
查看>>
POJ1006 中国剩余定理
查看>>
部署JUnit
查看>>
【图论 搜索】bzoj1064: [Noi2008]假面舞会
查看>>
Python补充之函数
查看>>
获取含有class为某个值的a标签或img标签
查看>>
接口测试概念
查看>>
【LeetCode】107. Binary Tree Level Order Traversal II (2 solutions)
查看>>
【LeetCode】124. Binary Tree Maximum Path Sum
查看>>
[python]bytes和str
查看>>
ffmpeg常用命令(windows)
查看>>
Redis部署
查看>>
FFT模板
查看>>