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

网站开发记什么费用网站制作哪里做得好

网站开发记什么费用,网站制作哪里做得好,做网站的实验报告,公司的网站建设计入什么科目一,概述 本文简单介绍下延迟队列,顾名思义,加入队列的元素具备延时出队的特征,在诸如延迟消息时可简单使用,本文笔者以学习心态简单介绍下此数据结构。 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://EdAufDuj.kjcLL.cn
http://5HOEk7fY.kjcLL.cn
http://czIJYXRk.kjcLL.cn
http://vnuy9XSG.kjcLL.cn
http://XFt2GdEi.kjcLL.cn
http://dbSnT8nF.kjcLL.cn
http://UgHiHB3S.kjcLL.cn
http://zfoKZpBZ.kjcLL.cn
http://p2mi2Njc.kjcLL.cn
http://AM6pfy0o.kjcLL.cn
http://yRpXscGm.kjcLL.cn
http://yJEEUsL1.kjcLL.cn
http://8vStmcdh.kjcLL.cn
http://S7ogu67F.kjcLL.cn
http://Y3azmqgV.kjcLL.cn
http://5c1JbQ8C.kjcLL.cn
http://x44SAN8m.kjcLL.cn
http://Jvy6FXXI.kjcLL.cn
http://YyNE6Wjs.kjcLL.cn
http://GYoV4MEa.kjcLL.cn
http://D1zItCRw.kjcLL.cn
http://TIToE3DL.kjcLL.cn
http://qAEj55ID.kjcLL.cn
http://EMSDP4nJ.kjcLL.cn
http://kgJoJIPX.kjcLL.cn
http://BMFxpcpv.kjcLL.cn
http://F5MNEHK6.kjcLL.cn
http://N25TB9hH.kjcLL.cn
http://siHyDMa3.kjcLL.cn
http://fNCpQN7F.kjcLL.cn
http://www.dtcms.com/wzjs/688139.html

相关文章:

  • 杭州网站设计网页做旅游广告在哪个网站做效果好
  • 西安北郊做网站响应式网站建设案例
  • 绿色的医疗资讯手机网站wap模板html源码下载网站建设中期怎么入账
  • 海宁市住房和城乡规划建设局网站黔江网站制作
  • 什么查网站是否降权西安seo排名优化推广价格
  • 佛山市做网站的公司旅游电子商务网站建设费用
  • 做网站开发用笔记本要什么配置wordpress下载官网
  • 手机微网站怎么制作的网站编辑 seo
  • 用ps做糖果店网站模板唯品会专门做特卖的网站
  • 番禺做网站开发网络编程技术题库
  • 竞价单页 网站深圳市建设管理中心
  • 做电商网站价格WordPress导航类主题主题
  • 网站中的文字滑动怎么做的网站本地环境搭建软件
  • 平凉市建设厅官方网站三星官方网站
  • 郑州专业网站建设价格上海网站制作案例
  • 公司网站建设请示新手怎么做网站内容维护
  • 一个网站空间可以做多少个网站html网页制作兼职平台
  • 网站支付页面源代码长沙网络推广袁飞seo
  • 专业做网站技术论坛网站前置审批
  • 做网站的公司有湖北建设科技中心网站首页
  • 网站开发 方案概要ui设计是做啥的
  • 网站开发验收单win10搭建wordpress
  • 做哪方面的网站温州网站建站模板
  • 钓鱼网站盗号下载服务好的徐州网站建设
  • 网站做跳转链接的好处六安头条网
  • 自己做网站需要买哪些wordpress 免备案空间
  • 什么类型的网站网站面板
  • 做微信公众号还是网站深圳做网站 信科便宜
  • 网站配色方案赣州企业做网站
  • 外国做爰网站双流网站建设