Java中常用的七个阻塞队列第二篇DelayQueue源码介绍
Java中常用的七个阻塞队列第二篇DelayQueue源码介绍通过前面两篇文章,我们对队列有了了解及已经认识了常用阻塞队列中的三个了。本篇我们继续介绍剩下的几个队列。本文主要内容:通过源码学习Delayqueue及理解Dqueue并用代码简单演示使用场景。本文出自凯哥Java(kaigejava)的《凯哥Java并发系列》之《Java并发编程之队列》系列的第三篇:《Java中常用的七个阻塞队列第二
Java中常用的七个阻塞队列第二篇DelayQueue源码介绍
通过前面两篇文章,我们对队列有了了解及已经认识了常用阻塞队列中的三个了。本篇我们继续介绍剩下的几个队列。
本文主要内容:通过源码学习Delayqueue及理解Dqueue并用代码简单演示使用场景。
本文出自凯哥Java(kaigejava)的《凯哥Java并发系列》之《Java并发编程之队列》系列的第三篇:《Java中常用的七个阻塞队列第二篇DelayQueue源码介绍》
Java中常用的几个队列中,阻塞队列还有四个没介绍。如下图:
DelayQueue
先上总结脑图:
编辑
来看看构造器:
支持无参和支持直接存放一个集合的。
再来看看为什么说DQueue队列使用的是PriorityQueue实现的呢?
来看看源码:
在添加元素的offer方法源码中,我们可以看到最终调用的是q.offer(e)这个方法的。那么q又是什么呢?我们接着跟下去:private final PriorityQueue<E> q = new PriorityQueue<E>();。发现q是PriorityQueue这个队列。如下图:
为什么说可以延时呢?
我们来看看DQueyue类的定义:
public class DelayQueue
原创不易,完成人机校验,阅读全文