1、结构

使用的是PriorityQueue来作为底层的存储

元素需要实现Delayed接口,该接口继承了comparable接口

DelayQueue的队头元素是根据comparable排在队首的元素

无论是入队还是出队都是先加锁,也就是异步进行的。

2、add,put,offer操作底层都是调的offer。

offer操作因为加锁是异步进行的,而且发现加入后的元素是自己的时候进行signal(),而不是signalAll()

为什么调用signal?出队的操作没有await

3、remove,poll,peek,take都会加锁

remove  操作不管时间是否已经到了,都会删除.

poll操作只有delay到了才会删除。

peek也加锁,但是不会判断是否已经到delay时间,只是调priorityQueue.peek()。

take操作会阻塞。

最新文章

  1. 【河北省队互测】 gcd BZOJ 2818
  2. Unix 用gdb分析core dump文件
  3. Codeforces 713D Animals and Puzzle
  4. asp.net 开发问题:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值。
  5. 【转】WebStorm 2016 最新版激活(activation code方式)
  6. hdu 1599 find the mincost route
  7. Oracle11g重建EM 报ORA-20001: SYSMAN already exists
  8. c++中&和&&有什么差别
  9. Burp_用户名密码爆破
  10. Linux命令及lamp搭建
  11. Android中的线程池
  12. hystrix参数使用方法
  13. (四)surging 微服务框架使用系列之网关 转载
  14. 【深入理解JVM】:Java类继承关系中的初始化顺序
  15. 使用yum更新时不升级Linux内核的方法
  16. U8客开插件-一、标准单据标准按钮执行前验证操作
  17. smarty学习——缓存
  18. C# 过滤sql特殊字符方法集合
  19. 【探路者】团队Alpha周贡献分数分配结果
  20. openstack的网络配置

热门文章

  1. 最大权闭合图 && 【BZOJ】1497: [NOI2006]最大获利
  2. tomcat配置虚拟目录映射
  3. Hibernate使用MyExclipse10自动生成配置文件报错
  4. Qt中QUdpSocket序列化问题
  5. 批量硬关联本地AD帐号与Office云端帐号
  6. 2. MySQL
  7. 【液晶模块系列基础视频】4.4.X-GUI图形界面库-画tab函数简介
  8. SonarQube代码质量管理平台安装与使用
  9. c#String的不变特性,可读但不可写性
  10. Apache Spark源码走读之8 -- Spark on Yarn