java 任务调度timer_JAVA定时任务调度之Timer入门详解(一)

怼烎@ 2022-11-03 11:45 240阅读 0赞

所谓的Timer,打开jdk的api文档可以看到它的定义:一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。通俗点讲就是说:有且仅有一个后台线程对多个业务线程进行定时定频率的调度。(一点也不通俗好么~~)

废话不多说,直接上个入门测试实例。代码如下:

首先:建立一个java项目。里面包含两个类:MyTimerTask和MyTimer。

MyTimerTask.java代码

///我是分割线///

package com.it.timer;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.TimerTask;

public class MyTimerTask extends TimerTask{

private String name;

public MyTimerTask (String inputName){

name = inputName;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public void run() {

SimpleDateFormat sf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Calendar calendar = Calendar.getInstance();

// 打印当前name的内容和当前执行的时间,为了更好的理解~~

System.out.println(“Current exec time is :” + sf.format(calendar.getTime()));

System.out.println(“Current exec name is :” + name);

}

}

///我是分割线///

MyTimer.java

package com.it.timer;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Timer;

public class MyTimer extends Timer {

public static void main(String[] args) {

//创建一个Timer实例

Timer timer = new Timer();

//创建一个MyTimerTask实例

MyTimerTask myTimerTask = new MyTimerTask(“zhangsan”);

SimpleDateFormat sf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Calendar calendar = Calendar.getInstance();

//通过timer定时定频率调用myTimerTask的业务逻辑

//Timer.schedule(TimerTask task, long delay, long period)

//方法第一个参数是TimerTask类型,这里是myTimerTask,delay即距离当前时间几秒,

//period即执行任务的周期。方法表达的意思是任务task在delay时间后执行,并且每过period秒执行一次

System.out.println(“Current time of Main is :” + sf.format(calendar.getTime()));

timer.schedule(myTimerTask, 2000L,1000L);

//这里意思是在当前时间两秒后执行第一次,此后每过1秒执行一次。delay和period单位是毫秒,类型为long

}

}

///我是分割线///

运行后控制台如下:

07e228831a2935b7798888dbe53ce765.png

这么简单明了应该不用解释了吧^_^.

未完待续……

发表评论

表情:
评论列表 (有 0 条评论,240人围观)

还没有评论,来说两句吧...

相关阅读