package TimerTask;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Timetask {
public static void main(String[] args) throws InterruptedException {
//创建Timer对象, 会开启一个新的线程
// Timer timer = new Timer();
Timer timer = new Timer( true ); //把Timer设置为守护线程
// timer.schedule(task, time); //在指定的time时间执行task任务
// timer.schedule(task, delay); //延迟delay毫秒后执行task任务
// timer.schedule(task, firstTime, period); //在firstTime时间执行task任务,以后每隔period毫秒再执行一次
// timer.schedule(task, delay, period); //延迟delay毫秒后执行task任务,以后每隔period毫秒再执行一次
timer.schedule(new TimerTask() {
@Override
public void run() {
//执行的任务
System.out.println( new Date());
}
}, 2000 , 1000);
System.out.println("main waiting....");
Thread.sleep(10000);
System.out.println("main end....");
}
}
package TimerTask;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Timetask {
public static void main(String[] args) throws InterruptedException {
Timer timer= new Timer();//第一步创建一个定时器对象
SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
try {
Date firstname = format.parse("2021-12-23 15:58:30 000");
TimerTask timerTask = new Time();
timer.schedule(timerTask,firstname,1000);//第二步使用定时器对象调用schedule方法
//传递三个参数进取第一参数为需要做的定时任务,也就是定时任务对象,当第一次执行时间一到自动调用定时任务类中的run方法
//传递的第二个参数为定时任务第一次执行的时间
//传递的第三个参数为定时任务每隔多少时间执行一次
} catch (ParseException e) {
e.printStackTrace();
}
}
}
class Time extends TimerTask{
@Override
public void run() {
SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String format1 = format.format(new Date());
System.out.println("进行了一次定时任务"+format1);
}
}
总结:
使用定时器我们需要首先创建定时器对象
之后我们需要一个类实现定时任务这个抽象类
其次我们就可以创建定时任务对象了
之后我们就可以进行相关的定时任务操作了。



