任务定时调度就是在以后某个时间或一次或多次执行事先定好的任务。
- java中使用任务调度的类是Timer类,先看看Timer的方法
返回值类型 | 方法和描述 |
---|---|
void | cancel() 终止此计时器,丢弃任何当前计划的任务 |
void | schedule(TimerTask task, Date time) 在指定的时间安排指定的任务执行。 |
void | schedule(TimerTask task, Date firstTime, long period)从指定 的时间开始 ,对指定的任务执行重复的 固定延迟执行 。 |
void | schedule(TimerTask task, long delay) 在指定的延迟之后安排指定的任务执行。 |
void | schedule(TimerTask task, long delay, long period) 在指定 的延迟之后开始 ,重新执行 固定延迟执行的指定任务。 |
void | scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 从指定的时间 开始 ,对指定的任务执行重复的 固定速率执行 。 |
void | scheduleAtFixedRate(TimerTask task, long delay, long period) 在指定的延迟之后 开始 ,重新执行 固定速率的指定任务。 |
- 其中TimerTask类就是要执行的任务,这个类中有一个抽象方法run(),这个方法里面就是要执行的内容。
- 我们可以写一个类去继承TimerTask,然后重写run()方法,将这个类的对象通过参数调给Timer对象,由Timer对象来决定执行任务的时间。
import java.util.Timer;
import java.util.TimerTask;
public class TimerTest {
public static void main(String[] args) {
Timer timer = new Timer();
//一秒后执行这个任务(
timer.schedule(new MyTimerTask(),10*1000);
}
}
class MyTimerTask extends TimerTask{
@Override
public void run() {
System.out.println("时间到了,任务执行");
}
}
- 注意:如果没有手动终止程序运行不会终止,那么则只有当系统的垃圾收集被调用的时候才会对其进行回收终止。或调用 Timer 类自带的 cancel() 方法,实现 Timer 的终止。