在对DelayQueue延迟功能的使用上,很多人不能后完全理解延迟的一些功能使用,这里我们深入来挖掘一下DelayQueue的原理。

下面将从构造方法、接口、继承体系三个方面进行分析,需要注意的是,相较于其它的阻塞队列,DelayQueue因为延迟的功能多了接口的使用,一起来看具体内容。

1.构造方法

public DelayQueue() {}
public DelayQueue(Collection c) {
 this.addAll(c);
}

构造方法比较简单,一个默认构造方法,一个初始化添加集合c中所有元素的构造方法。

2.接口分析

public interface Delayed extends Comparable {
 /**
  * Returns the remaining delay associated with this object, in the
  * given time unit.
  *
  * @param unit the time unit
  * @return the remaining delay; zero or negative values indicate
  * that the delay has already elapsed
  */
 long getDelay(TimeUnit unit);
}

Delayed 接口有一个getDelay方法接口,该方法用来告知延迟到期有多长的时间,或者延迟在多长时间之前已经到期,是不是很简单。

为了排序Delayed 接口还继承了Comparable 接口,因此必须实现compareTo(),使其可以进行元素的比较。

3.继承体系

public class DelayQueueextends AbstractQueueimplements BlockingQueue

到此这篇关于java DelayQueue的原理浅析的文章就介绍到这了,更多相关java DelayQueue的原理内容请搜索乐虎体育以前的文章或继续浏览下面的相关文章希望大家以后多多支持乐虎体育!

标签:

java DelayQueue的原理浅析的更多相关文章

  1. java中gc算法实例用法

    在我们对gc中的算法有基本概念理解后,要把算法的理念实现还需要依托实际垃圾收集器的使用。因为光靠一些简单的原理不足以支撑整个程序的运行,在回收机制上有专门的收集器。下面我们就垃圾收集器的概念、使用注意事项、收集器图解进行介绍,然后带来两种常见的垃圾收集器供大家参考。1.概念垃圾收集器时之前列举的垃圾......

  2. 关于Java下奇怪的Base64详解

    下面这一段代码中会报错。?123456789101112131415161718192021222324252627282930313233package jiangbo.java.lang;import java.io.IOException;import java.nio.charset.Cha......

  3. Java中EasyPoi导出复杂合并单元格的方法

    前言:上星期做了一个Excel的单元格合并,用的是EasyPoi,我之前合并单元格都是原生的,第一次使用EasyPoi合并也不太熟悉,看着网上自己套用,使用后发现比原生的方便些,贡献一下,也给其他用到合并而且用的是EasyPoi的小伙伴节省下时间。导出模板:坐标:版本号,自己来定,可以去官网查看:E......

  4. java集合(List Set Map的使用

    ListList的元素以线性方式存储,可以存放重复对象,List主要有以下两个实现类:ArrayList : 长度可变的数组,可以对元素进行随机的访问,向ArrayList中插入与删除元素的速度慢。LinkedList: 采用链表数据结构,插入和删除速度快,但访问速度慢。SetSet中的......

  5. java DelayQueue的原理浅析

    在对DelayQueue延迟功能的使用上,很多人不能后完全理解延迟的一些功能使用,这里我们深入来挖掘一下DelayQueue的原理。下面将从构造方法、接口、继承体系三个方面进行分析,需要注意的是,相较于其它的阻塞队列,DelayQueue因为延迟的功能多了接口的使用,一起来看具体内容。1.构造方法p......

  6. java编译命令基础知识点

    我们在对计算机下达指令时,人类的语言它是不能够明白,需要通过编译的时候翻译成计算机能听懂的语言。编译过程中会调用javac命令,这点大家可能接触的不多,毕竟是是计算机程序内部运行时的操作。下面我们就编译的概念、命令带来讲解,然后分享一个编译实例给大家练习。1.编译概念通过流程图可以看出其实java的......

  7. Java中的Valid和Validated的比较内容

    如果要添加接口校验,需要1,在接口方法中请求参数前面添加@Valid注解,不需要在接口的实现类上添加@Valid注解,也不需要@Validated注解:addAnimal(@Valid Animal a)2,在请求对象类的每个要校验的字段上添加@Valid注解,也不需要在类上添加@Validated......

  8. java中DelayQueue实例用法详解

    在阻塞队里中,除了对元素进行增加和删除外,我们可以把元素的删除做一个延迟的处理,即使用DelayQueue的方法。这里的删除需要一定的时间才能生效,有点类似于过期处理的理念。下面我们就DelayQueue的概念、特点进行讲解,然后在代码示例中体会DelayQueue的使用。1.概念是一个带有延迟时间......

  9. Java并发/多线程-CAS原理分析

    目录什么是CAS并发安全问题举一个典型的例子i++如何解决?底层原理CAS需要注意的问题使用限制ABA 问题概念解决方案高竞争下的开销问题什么是CASCAS 即 compare and swap,比较并交换。CAS是一种原子操作,同时 CAS 使用乐观锁机制。J.U.C中的很多功能都是建立在 CAS......

  10. 自己动手实现java断点/单步调试(二)

    自从上一篇《自己动手实现java断点/单步调试(一)》是时候应该总结一下JDI的事件了事件类型描述ClassPrepareEvent装载某个指定的类所引发的事件ClassUnloadEvent卸载某个指定的类所引发的事件BreakingpointEvent设置断点所引发的事件ExceptionEve......

随机推荐

  1. javascript 箭头函数的使用介绍

    本文介绍箭头(arrow)函数的优点,更简洁的语法我们先来按常规语法定义函数:function funcName(params) { return params + 2; }funcName(2);// 4该函数使用箭头函数可以使用仅仅一行代码搞定!var funcN......

  2. Java 概述

    1. 什么是Java什么是 JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的......

  3. 在.NET Core 中使用 FluentValidation 进行规则验证的方法

    不用说,规则验证很重要,无效的参数,可能会导致程序的异常。如果使用Web API或MVC页面,那么可能习惯了自带的规则验证,我们的控制器很干净:public class User{[Required]public string FirstName { get; set; }[Required]pub......

  4. java HttpClient传输json格式的参数实例讲解

    最近的一个接口项目,传的参数要求是json,需要特殊处理一下。重点是这两句话:httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");se.setContentType(CONT......

  5. asp判断某个文件是否存在的函数

    最近在写功能的时候需要判断某个文件是否存在,存在则调用,不存在则动态显示页面的功能,用到了下面的代码,特分享一下需要的朋友可以参考一下。两个函数都是基于ASP中的FileSystemObject对象,也就是FSO,写成函数方便以后使用。ASP检查目录是否存在的函数代码Function isExist......

  6. MySQL 中的自增主键

    MySQL 的主键可以是自增的,那么如果在断电重启后新增的值还会延续断电前的自增值吗?自增值默认为1,那么可不可以改变呢?下面就说一下 MySQL 的自增值。特点保存策略1、如果存储引擎是 MyISAM,那么这个自增值是存储在数据文件中的;2、如果是 InnoDB 引擎,1)在 5.6 ......

  7. postman接口自动化测试之利用node.js和xmysql连接、操作数据库

    一、背景使用postman进行接口自动化测试时,除了要验证接口的返回,有时候还要同时验证数据库的数据,或者将接口返回的数据与数据库的数据做对比,检验数据的正确性。有的时候还需要在执行自动化case之前,造一些测试数据,或者在跑完自动化之后,删除测试数据。所以,我们需要在postman里连接并操作数据......

  8. 解读Python的文件读写

    前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。PS:如有需要Python学习资料的小伙伴可以加下Python快乐交流群:11362015451.概述Python中内置了文件读写的功能核心:读写文件其实请求操作系统打开一个文件对象【文件描述符】......

  9. Java中EasyPoi导出复杂合并单元格的方法

    前言:上星期做了一个Excel的单元格合并,用的是EasyPoi,我之前合并单元格都是原生的,第一次使用EasyPoi合并也不太熟悉,看着网上自己套用,使用后发现比原生的方便些,贡献一下,也给其他用到合并而且用的是EasyPoi的小伙伴节省下时间。导出模板:坐标:版本号,自己来定,可以去官网查看:E......

  10. std::async的使用总结

    C++98标准中并没有线程库的存在,直到C++11中才终于提供了多线程的标准库,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。多线程库对应的头文件是#include ,类名为std::thread。然而线程毕竟是比较贴近系统的东西,使用起来仍然不是很方便,特别是线程同步及获取线程运行结......