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

购买云服务器优化设计五年级下册数学答案

购买云服务器,优化设计五年级下册数学答案,人工智能软件定制,wordpress dedecms整合一、什么是定时器 定时器是指可以通过 Java 中的 Timer 类和 TimerTask 类所提供的功能来实现定期执行某些任务的工具。 标准库中提供了一个 Timer 类 . Timer 类的核心方法为 schedule . schedule 包含两个参数 . 第一个参数指定即将要执行的任务代码 , 第二个参数指定多…

一、什么是定时器

定时器是指可以通过 Java 中的 Timer 类和 TimerTask 类所提供的功能来实现定期执行某些任务的工具。

标准库中提供了一个 Timer . Timer 类的核心方法为 schedule .
schedule 包含两个参数 . 第一个参数指定即将要执行的任务代码 , 第二个参数指定多长时间之后执行 ( 单位为毫秒).

下面是一个示例代码,用于创建一个定时器, 5 秒钟后打印一条消息:

import java.util.Timer;
import java.util.TimerTask;public class TimerExample {public static void main(String[] args) {Timer timer = new Timer();timer.schedule(new TimerTask() {public void run() {System.out.println("5 秒钟已经过去了...");}}, 5000);}
}

在上述代码中,我们首先创建一个 Timer 对象,然后使用 schedule 方法安排一个 TimerTask 对象在 0 秒后开始运行, 5 秒钟后再次运行。在 TimerTask 的 run 方法中,我们打印了一条简单的消息。

总之,Java 中的定时器是一种可以用来实现定期执行某些任务的工具,在开发中,我们可以根据具体需求来设计和使用相应的定时器,来进行任务的调度和处理。

 二、实现定时器

定时器的构成 :
  • 一个带优先级的阻塞队列
    为啥要带优先级呢?
    因为阻塞队列中的任务都有各自的执行时刻 (delay). 最先执行的任务一定是 delay 最小的. 使用带优先级的队列就可以高效的把这个 delay 最小的任务找出来.
  • 队列中的每个元素是一个 MyTask 对象.
  • MyTask 中带有一个时间属性, 队首元素就是即将
  • 同时要创建线程一直扫描队首元素, 看队首元素是否需要执行

class MyTask implements Comparable<MyTask>{public Runnable runnable;public Long time;//为了方便后续判定,使用绝对的时间戳public MyTask(Runnable runnable, Long delay) {this.runnable = runnable;//取当前时刻的时间戳 + delay, 作为该任务实际执行的时间戳this.time = System.currentTimeMillis() + delay;}@Overridepublic int compareTo(MyTask o) {return (int)(this.time-o.time);}
}
public class MyTimer {//带有优先级的阻塞队列private PriorityBlockingQueue<MyTask> priorityBlockingQueue = new PriorityBlockingQueue<>();private Object locker = new Object();public void schedule(Runnable runnable,long delay){MyTask task = new MyTask(runnable,delay);//放任务priorityBlockingQueue.put(task);synchronized (locker) {locker.notify();}}public MyTimer(){Thread t = new Thread(() -> {while(true){synchronized (locker) {try {//取任务MyTask take = priorityBlockingQueue.take();//任务的时间Long curTime = System.currentTimeMillis();if(take.time <= curTime){//时间到了,可以执行任务take.runnable.run();}else{//时间没到,把任务重新放回到队列里priorityBlockingQueue.put(take);//locker.wait(take.time-curTime);}} catch (InterruptedException e) {e.printStackTrace();}}}});t.start();}}
http://www.yidumall.com/news/18869.html

相关文章:

  • 青岛中小微企业互联网站建设补贴营销型网站定制
  • 网站服务包括什么百度风云排行榜官网
  • 聚合页做的比较好的教育网站sem招聘
  • 用网站免费模板做网站要会什么优化精灵
  • 网站查询备案百度问一问
  • 深圳科技公司黄页seo的推广技巧
  • 保定专业网站制作seo 推广服务
  • 用网站还是阿里巴巴做soho优化设计答案六年级上册语文
  • 专业做相册书的网站2345网址导航手机版
  • 政府门户网站建设管理典型经验长沙哪家网络公司做网站好
  • 莱州网站建设网页设计需要学什么
  • 安庆哪些做网站的公司好柳州今日头条新闻
  • 泸州做网站的公司有哪些惠州网络营销公司
  • 购物网站开发 书籍樱花bt引擎
  • 保靖网站建设百度账号人工申诉
  • 做网站是否要去工商备案云南今日头条新闻
  • 网站维护费一年多少钱淄博网站推广
  • 中国十大人力资源外包公司优化 保证排名
  • 电子商务网站建设规划的内容软文广告代理平台
  • 在深圳做网站多少钱宁波seo推荐优化
  • 长沙广告公司电话合肥网站推广优化
  • 最超值的郑州网站建设各种手艺培训班
  • 动态网站建设步骤广告公司接单软件
  • 网站商城怎么做win10系统优化工具
  • dedecmsv5.6 qq空间网站模板怎么制作网页
  • 投资网站建设yandex引擎
  • 如何做经营性网站备案电脑优化软件哪个好用
  • 漯河网站建设费用seo助手
  • 重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司百度网站推广电话
  • 一个人做网站的难度优化近义词