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

优品惠网站建设需求长沙seo平台

优品惠网站建设需求,长沙seo平台,海南住房和城乡建设部网站,没有备案的交易网站一、什么是定时器 定时器是指可以通过 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.hkea.cn/news/943158/

相关文章:

  • 深圳做二维码网站建设什么是互联网营销
  • 网易企业邮箱收费标准百色seo关键词优化公司
  • 做网站的财务需求张北网站seo
  • 北京赛车彩票网站怎么做佛山本地网站建设
  • 门户网站的建设方式有哪些网络推广引流
  • 做中东服装有什么网站免费seo刷排名
  • 做网站用java还是c语言百度竞价推广培训
  • 做动画视频的网站市场监督管理局官网入口
  • 做bbs网站教程军事新闻最新消息今天
  • 在哪儿可以找到网站开发的需求搜索引擎优化介绍
  • 成都网站建设代理加盟网络运营培训班多少钱
  • 太原开发网站公司站长工具端口扫描
  • 域控制网站访问自媒体视频发布平台
  • 广西住房和城乡建设委员会网站湖南网站营销seo多少费用
  • 关键词推广名词解释百度竞价关键词怎么优化
  • 群辉服务器做网站网络优化的内容包括哪些
  • 做淘客的网站岳阳seo
  • 网吧设计方案seox
  • 谁做网站市场营销专业
  • 慈溪外贸公司网站网络营销就业前景和薪水
  • 电商网站建设实训报告长沙网站seo推广公司
  • 阿里云ecs怎么建网站吉林网站seo
  • 企业营销型网站建设的可行性西安竞价托管
  • 做网站如何适应分辨率网站分析培训班
  • 现在币圈有那些私募网站做的好百度推广账号登陆入口
  • 旅游网站图片营销公司排名
  • 做服务器的网站都有哪些搜狗关键词排名此会zjkwlgs
  • php动态网站开发 唐四薪 答案b站引流推广网站
  • 长沙3天2晚自由行攻略论述搜索引擎优化的具体措施
  • 外汇局网站做结汇申报被逆冬seo课程欺骗了