DelayQueue
2024-10-18 04:00:15
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操作会阻塞。
最新文章
- 【河北省队互测】 gcd BZOJ 2818
- Unix 用gdb分析core dump文件
- Codeforces 713D Animals and Puzzle
- asp.net 开发问题:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值。
- 【转】WebStorm 2016 最新版激活(activation code方式)
- hdu 1599 find the mincost route
- Oracle11g重建EM 报ORA-20001: SYSMAN already exists
- c++中&;amp;和&;amp;&;amp;有什么差别
- Burp_用户名密码爆破
- Linux命令及lamp搭建
- Android中的线程池
- hystrix参数使用方法
- (四)surging 微服务框架使用系列之网关 转载
- 【深入理解JVM】:Java类继承关系中的初始化顺序
- 使用yum更新时不升级Linux内核的方法
- U8客开插件-一、标准单据标准按钮执行前验证操作
- smarty学习——缓存
- C# 过滤sql特殊字符方法集合
- 【探路者】团队Alpha周贡献分数分配结果
- openstack的网络配置
热门文章
- 最大权闭合图 &;&; 【BZOJ】1497: [NOI2006]最大获利
- tomcat配置虚拟目录映射
- Hibernate使用MyExclipse10自动生成配置文件报错
- Qt中QUdpSocket序列化问题
- 批量硬关联本地AD帐号与Office云端帐号
- 2. MySQL
- 【液晶模块系列基础视频】4.4.X-GUI图形界面库-画tab函数简介
- SonarQube代码质量管理平台安装与使用
- c#String的不变特性,可读但不可写性
- Apache Spark源码走读之8 -- Spark on Yarn