BlockingQueue 阻塞队列,支持两个附加操作。

1,在队列为空时,获取元素的线程会等待对列变为非空。

2,在队列为满时,存储元素的线程会等待对列可用。

使用场景:

生产者往对列里添加元素

消费者从对列里拿元素

操作

方法\处理 抛异常 返回特殊值 一直阻塞 超时退出
入队 add(e) offer(e) put(e) offer(e, time, unit)
出队 remove poll take poll(time, unit)
查询 element peek    
  • 抛出异常:满队列时,执行入队会抛出异常;空队列时执行出队会抛出异常 。

  • 返回特殊值:入队操作会返回布尔值;出队操作成功返回操作值,失败返回空值。

  • 一直阻塞:满队列时,执行入队会进入条件等待队列,线程阻塞;空队列时,执行出队会进入条件等待队列,线程阻塞 。

  • 超时退出:满队列时,执行入队会阻塞生产者线程一段时间,如果超过一定的时间,生产者线程就会退出。

最新文章

  1. jquery简单的轮播效果!
  2. javase-->基础知识(二)
  3. SpringBoot配置属性之DataSource
  4. javaweb学习总结七(XML语言作用、语法)
  5. 要源码的快来啊,价值500的OA商业源码免费送给大家,望大家年底奖金多多......
  6. window.frameElement属性
  7. ICSharpCode.SharpZipLib实现压缩解压缩
  8. response.addCookie(cookie)添加cookie失败.
  9. 大数据时代之hadoop(六):hadoop 生态圈(pig,hive,hbase,ZooKeeper,Sqoop)
  10. C++第三天学习
  11. 笔记:Spark简介
  12. python的try方法中的else和finally的区别
  13. How to work with my desktop and laptop
  14. mongo 根据对象中的某个条件来查询
  15. 爬虫利器 Puppeteer 实战
  16. Dash VS Underscore
  17. mac修改本机mysql的root密码
  18. JS高级-原型等概念深入理解
  19. Maven 专题
  20. pcre库

热门文章

  1. msmq消息队列使用场景
  2. Js构造对象-添加方法的三种方式
  3. day009 文件操作
  4. C#调用存储过程中事务级临时表返回DataTable列乱序解决办法
  5. Day 22 面向对象编程
  6. JavaScript for循环元素取下标问题
  7. java获取当前日期的前一天,前一月和前一年
  8. ldap 基本名词解释(3)
  9. 八进制、十六进制与十进制的转换,bytes的十六进制
  10. 如何预防SQL注入,XSS漏洞(spring,java)