当前位置: 首页 > wzjs >正文

汽车之家网页版官网找车广州seo排名外包

汽车之家网页版官网找车,广州seo排名外包,做网站会员推广哪个好,wordpress 前台登录插件一,概述 本文简单介绍下延迟队列,顾名思义,加入队列的元素具备延时出队的特征,在诸如延迟消息时可简单使用,本文笔者以学习心态简单介绍下此数据结构。 DelayQueue实现类图如下 DelayQueue实现Queue接口,…

一,概述

本文简单介绍下延迟队列,顾名思义,加入队列的元素具备延时出队的特征,在诸如延迟消息时可简单使用,本文笔者以学习心态简单介绍下此数据结构。

DelayQueue实现类图如下

DelayQueue实现Queue接口,内部保存一个优先级队列,新加入队列的元素必须实现Delay接口,实现getDelay和compareTo方法,以满足优先级队列排序,以及出队延迟计算。

二,实例

import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;public class DelayQueueMain {public static void main(String[] args) throws InterruptedException {DelayQueue<Message> queue = new DelayQueue<>();//创建一个消费者线程new Thread(() -> {try {System.out.println("Consumer Thread Create.");while (true) {Message message = queue.take();message.action.run();}} catch (InterruptedException e) {throw new RuntimeException(e);}}).start();//生产者for (int i = 0; i < 10; i++) {Message message = new Message((10 - i) * 200, i);queue.add(message);Thread.sleep(100);}}private static class Message implements Delayed {private final long createTime;private final long delayMs;private final long id;private final Runnable action = new Runnable() {@Overridepublic void run() {//简单demo,打印id即可System.out.println("invoke Message Id=" + id + ", DelayMs=" + delayMs);}};public Message(long delayMs, long id) {this.id = id;this.delayMs = delayMs;this.createTime = System.currentTimeMillis();}@Overridepublic long getDelay(TimeUnit unit) {return this.createTime + this.delayMs - System.currentTimeMillis();}@Overridepublic int compareTo(Delayed o) {long selfDelay = getDelay(TimeUnit.MILLISECONDS);long otherDelay = o.getDelay(TimeUnit.MILLISECONDS);if (selfDelay == otherDelay) {return 0;}return selfDelay > otherDelay ? 1 : -1;}}
}

输出如下

从上述结果可知,生产者加入队列的延迟消息,在消费者处如预期输出。

三,原理

优先级队列中,存放的元素实现了Delayed接口,通过getDelay可判断元素的优先级,delay小的优先在队列前端。

生产者offer

很简单,往队列中放一个元素,如果为空,则通过condition通知到消费者

消费者take

1,队列为空,通过condition等待

2,3,获得优先级队列第一个元素,并且计算当前getDelay值,小于0则出队,跳出for循环,否则继续超时await

http://www.dtcms.com/wzjs/289845.html

相关文章:

  • 未被列入失信被执行人名单查询博客网站seo
  • 土豆做视频在线观看网站中国营销传播网官网
  • 做网站工资多少日本搜索引擎naver入口
  • 做购物网站的开题报告网站设计报价方案
  • 可以做公众号的网站吗app推广平台
  • 海伦网站建设系统清理优化工具
  • 电子商务网站建设期末网站百度不收录的原因
  • 四川住房和城乡建设厅网站不能打开查淘宝关键词排名软件
  • 网站制作方案介绍及要求百度广告联盟点击一次多少钱
  • 易思espcms企业网站管理系统中文域名交易网站
  • 国外分销平台有哪些电商seo是指
  • 怎么做网站内容调研网络游戏推广怎么做
  • 怎么做垂直自营网站小说排行榜
  • 网站搜索排名优化价格外贸营销网站制作公司
  • 网络代理设置怎么设置网络营销乐云seo
  • 廊坊网站推广公司长沙seo霜天博客
  • 宁波seo推广哪家快北京中文seo
  • 做会员卡的网站在线seo外包公司优化
  • 上海的外贸网站建设公司百度最新人工智能
  • 十大批发网站如何把一个关键词优化到首页
  • 桂林的网站建设公司网站seo优化公司
  • 阿里巴巴网站建设改图片自媒体平台排名
  • 互联网行业pest分析上海谷歌seo
  • 石家庄有做网站的公司吗百度推广助手怎么用
  • 南昌企业网站开发公司seo是什么专业
  • 营销管理网站制作广州网站建设
  • 深圳网站开发公司哪家好宣传网站有哪些
  • 宁波外贸网站今日重大国际新闻
  • 那几个网站可以做h5seo网络排名优化方法
  • 福田疫情风险区域重庆seo优化公司