Timer和TimerTask就是我们在Java中常常会提起的定时任务。我们来看看他们中的方法。
TimerTask的类结构
public abstract class TimerTask implements Runnable
我们实现定时任务的时候,其实需要自己实现逻辑。例如
Timer time=new Timer();
time.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("aa");
}
},new Date());
我们来看看Timer里面的方法。
public void schedule(TimerTask task, long delay) {
if (delay < 0)
throw new IllegalArgumentException("Negative delay.");
sched(task, System.currentTimeMillis()+delay, 0);
}
创建一个定时任务,在延迟多少秒后执行,但是只执行一次。
public void schedule(TimerTask task, Date time) {
sched(task, time.getTime(), 0);
}
创建一个定时任务,在指定的时间执行,也是只执行一次。
public void schedule(TimerTask task, long delay, long period) {
if (delay < 0)
throw new IllegalArgumentException("Negative delay.");
if (period <= 0)
throw new IllegalArgumentException("Non-positive period.");
sched(task, System.currentTimeMillis()+delay, -period);
}
创建一个定时任务,延迟多长时间开始执行,以后每隔多长时间在执行。
public void schedule(TimerTask task, Date firstTime, long period) {
if (period <= 0)
throw new IllegalArgumentException("Non-positive period.");
sched(task, firstTime.getTime(), -period);
}
创建一个定时任务,在指定的时间执行,以后每隔多长时间执行。
我们就简单讲讲常用的方法就行。不用过多了解,感兴趣的小伙伴,可以自己去撸源码。