1 什么是BlockingQueue

2 BlockingQueue有什么用

3 ArrayBlockingQueue的用途

1 它是一个线程安全的队列

2 它是一个容量固定的队列

3 它为什么叫blocking

它会让线程的offer和take操作等待。

如果put的时候,发现队列已经满了,那么线程blocking等待。

如果take的时候,发现队列是空的,那么线程blocking等待。

这个实现完全是ReentrantLock的功劳,这也体现了ReentrantLock的Condition的威力,它可以让同步于同一个锁的线程等待不同的条件。这个是synchronized做不到的。

最新文章

  1. 移动前端开发之viewport的深入理解
  2. javac 命令出现 找不到文件 问题及解决办法
  3. java synchronized修饰普通方法,修饰静态方法,修饰代码块,修饰线程run方法 比较
  4. 在Windows平台搭建PHP开发环境(四)
  5. NopCommerce使用Autofac实现依赖注入
  6. Solr多核心及分词器(IK)配置
  7. ASP.NET Page执行顺序
  8. win10 uwp 获取指定的文件 AQS
  9. linux --- Ansible-playbook篇
  10. apache学习笔记
  11. pythonのsqlalchemy简单查询
  12. SpringMVC中@RestController的用法
  13. 深入理解char * ,char ** ,char a[ ] ,char *a[]
  14. (Alpha)Let's-典型用户和场景&功能规格说明书
  15. CentOS MongoDB 高可用实战
  16. ES6--变量的声明及解构赋值
  17. 关于socket的知识总结
  18. ViewBag对象的更改
  19. JVM性能监控
  20. 『NiFi 自定义 Processor 无法获取到 Logger』问题解决

热门文章

  1. 第十三届北航程序设计竞赛决赛网络同步赛 B题 校赛签到(建树 + 打标记)
  2. Leetcode | Construct Binary Tree from Inorder and (Preorder or Postorder) Traversal
  3. java 两个int类型的数据相除并输出百分号保留两位有效数字
  4. [Cocoa]深入浅出Cocoa多线程编程之 block 与 dispatch quene
  5. 数据库访问的弹性化---WebLogic和Oracle RAC的整合:Active GridLink
  6. RecyclerView的滚动事件分析
  7. MyEclipse Html自动提示功能的设置方法
  8. Linux内核裁剪的具体步骤
  9. Spark Streaming的样本demo统计
  10. vue.js+koa2项目实战(二)创建 HeadBar 组件