Java延迟唯一队列原生实现

编程 > Java (146) 2025-12-15 13:29:51

队列对象

使用 delayQueue +  ConcurrentHashMap 实现延迟+唯一队列

具体代码如下:

成员内容

稀缺资源,此处内容需登录后查阅(刷新)

登录/注册

队列使用/测试

测试代码

    public static void main(String[] args) throws InterruptedException {
        DelayedUniqueBlockingQueue<String> dq = new DelayedUniqueBlockingQueue<>();

        System.out.println(dq.offer("A", Duration.ofSeconds(3))); // true
        System.out.println(dq.offer("A", Duration.ofSeconds(1))); // false(重复)
        System.out.println(dq.offer("B", Duration.ofSeconds(2))); // true

        System.out.println("Take: " + dq.take()); // 以上设置,先输出 B
        System.out.println("Take: " + dq.take());
    }

执行结果

true
false
true
Take: B
Take: A

 

测试结果与预期一致。

 

关联

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
DelayQueue 简介DelayQueue是JDK提供的api,是一个延迟队列DelayQueue泛型参数得实现Delayed接口,Delayed继承了Co
队列对象使用 delayQueue + ConcurrentHashMap 实现延迟+唯一队列具体代码如下:import org.jetbrains.annot
概述Timer/ScheduledThreadPoolExecutor都是是JDK提供的api Timer Demoimport lombok.extern.s
java Queue队列实现生产消费模式,什么是Java编程中的Queue(队列),手动实现生产者消费者模式
Java Queue队列使用入门详解
简述在本博客中,我们将会创建一个reids的消息队列,Redis可以被当成消息队列使用
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
问题描述idea启动maven的JavaFX项目报错:Exception in Application start method java.lang.reflect.InvocationTarg...
Java编程之Spring Cloud Hystrix Circuit熔断/断路
​1.什么是队列优先级队列优先级是一种抽象数据类型,类似于常规队列或堆栈数据结构,但每个元素另外都具有与之关联的“优先级”
LinkedBlockingQueue 阻塞队列实现生产/消费模型package com.example.demospringbootqueueasynctask; import org....
Java编程之java static关键字,Java编程,static关键字
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
Vert.x java 入门,Vert.x这个框架在常规的web业务开发中估计还不是很成熟。但是了解了他的一些原理我觉得可以有一番作为。今天主要简单讲解下eclipse Vert.x是什么有什么...
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用 1 主要用spring-boot-starter-amqp来整合R