Timer 定时器使⽤说明
当你需要启⽤⼀个定时器任务,⽆需复杂的操作,只需要⼀个JDK⾃带的Timer即可解决。
1.介绍
在JDK中,我们需要两个类来执⾏定时器任务:Timer和TimerTask
Timer定时器是线程安全的,这个类可以扩展到⼤量同时安排的任务,可以进⾏⼀个任务单次或多次的定时启动。 TimerTask是⼀个抽象类,继承了TimerTask的⼦类可以作为Timer的计划任务。
2.使⽤⽅法
我们需要创建⼀个继承了TimerTask的⼦类,使⽤⽅法和线程类似,也是必须重写run()⽅法。类似的,也可以跟Thread⼀样不创建TimerTask的⼦类,使⽤TimerTask的匿名内部类,这⾥就不做详解了。同时TimerTask也有两个⾮抽象的⽅法cancel()和scheduleExecutionTime(),分别⽤于取消计时任务和返回此任务最近实际执⾏的已安排执⾏时间。
然后,创建Timer对象,使⽤Timer的schedule⽅法来作定时调⽤。schedule⽅法有多种重载:
当需要终⽌计时器,也可以使⽤Timer的cancel()⽅法。
⽐如我们写⼀个简单的例⼦:
输出如下图:
这样就是⼀个很简单的定时任务了。schedule(TimerTask task, Date time)
安排在指定的时间执⾏指定的任务。
schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进⾏重复的固定延迟执⾏。
抽象类的使用schedule(TimerTask task, long delay)
安排在指定延迟后执⾏指定的任务。
schedule(TimerTask task, long delay, long period)
安排指定的任务从指定的延迟后开始进⾏重复的固定延迟执⾏。
public class TimerTaskTest extends TimerTask {
public void run (){
System.out.println(new Date()+":呵呵");
}
public static void main (String[] args){
Timer timer = new Timer();
TimerTaskTest task = new TimerTaskTest()
timer.schedule(task, 2*1000, 1000);//2秒后启动,1秒跑⼀次
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论