java定时schedule(task,delay,period)
分类:
文章
•
2025-01-08 18:14:22
1.新建一个java项目,里面新建两个类,整体的框架如图所示:

2.MyTimer.java里面的代码如下所示:
-
import java.text.SimpleDateFormat;
-
import java.util.Calendar;
-
import java.util.Timer;
-
-
public class MyTimer {
-
-
public static void main(String[] args) {
-
Timer timer = new Timer();
-
MyTimerTask myTimerTask = new MyTimerTask("Number 1.");
-
Calendar calendar = Calendar.getInstance();
-
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
System.out.println(sf.format(calendar.getTime()));
-
calendar.add(Calendar.SECOND, 3);
-
myTimerTask.setName("schedule");
-
// schedule(task,delay,period)等待delay之后执行且执行一次task,之后每隔period执行一次task
-
timer.schedule(myTimerTask, 1000, 2000);
-
}
-
-
}
3.MyTimerTask.java里面的代码如下所示:
-
import java.text.SimpleDateFormat;
-
import java.util.Calendar;
-
import java.util.TimerTask;
-
-
public class MyTimerTask extends TimerTask {
-
-
private static String name;
-
-
public MyTimerTask(String inputName) {
-
name = inputName;
-
}
-
-
@Override
-
public void run() {
-
Calendar calendar = Calendar.getInstance();
-
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
System.out.println("Current exec time is:" + sf.format(calendar.getTime()));
-
System.out.println("Current exec name is:" + name);
-
}
-
-
public static String getName() {
-
return name;
-
}
-
-
public static void setName(String name) {
-
MyTimerTask.name = name;
-
}
-
-
}
4.运行得到定时结果:
