Java中的定时器Timer详解
什么是定时器Timer
定时器是一种Java中的工具,它可以在指定的时间间隔内重复执行特定任务或者仅仅执行一次特定的任务。
Timer的使用方法
该类包含两个直接实现接口Runnable的类:Task和TimerThread,其中TimerThread作为线程实现了计时,而Task实现了具体的任务内容。
Timer timer = new Timer(); //新建定时器对象
Task task = new Task(); //新建执行任务对象
timer.schedule(task, delay); //在delay毫秒后开始执行任务
在以上代码中,delay可以是一个指定的整数来表示延迟的毫秒数,也可以是一个Date类型的对象来表示一个具体的时间。
同时,还可以通过以下代码来实现重复执行任务:
Timer timer = new Timer(); //新建定时器对象
TimerTask task = new Task(); //新建执行任务对象
long delay = 0; //初始延迟
long period = 1000; //执行间隔为1秒
timer.scheduleAtFixedRate(task, delay, period); //重复执行任务
还可以通过以下代码来取消定时器的执行:
timer.cancel();
示例1
下面的代码演示了如何使用Timer执行一次任务:
Timer timer = new Timer(); //新建定时器对象
TimerTask task = new TimerTask() { //新建执行任务对象
public void run() {
System.out.println("任务执行了!");
}
};
long delay = 1000; //此处表示延迟1秒
timer.schedule(task, delay);
在以上代码中,通过匿名内部类的方式实现了TimerTask接口,进而重写Task的run()方法,以便在执行的时候将任务内容输出。
示例2
下面的代码演示了如何使用Timer重复执行任务:
Timer timer = new Timer(); //新建定时器对象
TimerTask task = new TimerTask() { //新建执行任务对象
public void run() {
System.out.println("任务执行了!");
}
};
long delay = 0; //此处表示不需要延迟,直接执行任务
long period = 1000; //执行间隔为1秒
timer.scheduleAtFixedRate(task, delay, period);
在以上代码中,通过调用scheduleAtFixedRate方法,将定时任务执行计划添加到定时器中,并设置了一个执行间隔1秒。因此任务会以1秒的间隔不断重复执行。
总结
Java中的定时器Timer提供了灵活的定时任务执行计划机制,可以方便地设置延迟执行和重复执行任务,可以运用在Java后台开发中各种场景中,例如日志清理、资源回收等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中的定时器Timer详解 - Python技术站