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

时间:2023-03-08 21:49:00

  所谓的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
  }
}

///////////////////////////////////////////我是分割线///////////////////////////////////

运行后控制台如下:

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

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

未完待续......