DelayQueue
是一个无界阻塞队列,其元素实现了Delayed
接口,其内部实际是使用了PriorityQueue
来实现数据的存储。
主要属性
1 | public class DelayQueue<E extends Delayed> extends AbstractQueue<E> |
构造器
1 | public DelayQueue() {} |
入队
1 | public boolean add(E e) { |
出队
1 | public E remove() { |
总结
DelayQueue
使用重入锁和条件控制来控制并发操作,内部使用优先级队列,常用于定时任务。- Java定时任务线程池
ScheduledThreadPoolExecutor
内部使用的是自己封装的DelayedWorkQueue
(使用数组实现了一遍优先级队列 本质没有区别)