Timer是一种定时器工具,用来在后台执行计划执行的任务 ,可以一次或多次反复执行。
TimerTask是一个抽象类,继承他的子类可以作为Timer的计划任务 。
schedule的意思相当于计划表的意思,他可以传入多个参数,与多个重构
一个小例子:
这个方法继承TimerTask接口,来作为任务给Timer
public class Timer2 extends TimerTask { @Override public void run() { int a = 0; while(a < 5){ try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(a++); } } }
这个类来执行任务。
public class AAA { public static void main(String[] args) throws InterruptedException { Timer timer = new Timer(); Timer2 timer2 = new Timer2(); timer.schedule(timer2, new Date(), 10000);
//timer.schedule(timer2, new Date());
//Thread.sleep(3000); //timer.cancel(); } }
timer.schedule(timer2, new Date(), 10000);//timer2是一个继承了TimerTask的类作为任务,new Date(),作为神魔时候开始执行,10000为延迟的时间,及下一个执行
当然,timer.schedule的重构好多,用到的可以去查api,
schedule(TimerTask task, long delay);//在延时delay毫秒后执行
还有一个需要注意的地方就是canle();
当你的一个任务正在执行的时候你执行canle是对当前的任务没有影响的,只有当前任务执行完了以后,计划任务中的下一个任务才会停止。