📅  最后修改于: 2023-12-03 15:02:01.946000             🧑  作者: Mango
Java中的定时器(Timer)是一种常用的实现定时任务的工具。其中,Timer类提供了许多关于定时器的方法,其中cancel()方法可以用来取消已经安排的定时任务。
Timer.cancel()方法用于取消此计时器,丢弃所有当前安排的任务。调用此方法后,计时器的行为就像尚未安排任务一样。如果此计时器已经被取消了,则调用此方法没有任何影响。
public void cancel()
以下代码演示了如何使用Java定时器及其cancel()方法来定时执行任务,并在指定时间后取消该定时器。
import java.util.Timer;
import java.util.TimerTask;
public class TimerDemo {
public static void main(String[] args) {
Timer timer = new Timer();
// 创建一个定时任务,每1秒执行一次
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("定时任务执行了!");
}
};
// 在500毫秒后开始执行定时任务,且每1秒执行一次
timer.schedule(task, 500, 1000);
// 在5秒后取消此定时器
timer.schedule(new TimerTask() {
@Override
public void run() {
timer.cancel();
System.out.println("定时器已经取消!");
}
}, 5000);
}
}
输出:
定时任务执行了!
定时任务执行了!
定时任务执行了!
定时任务执行了!
定时器已经取消!
在该示例中,首先创建了一个Timer实例,并创建了一个TimerTask实例task来定时执行任务。然后,调用Timer.schedule()方法安排任务,使其在500毫秒后开始执行,并且每1秒后重复执行。接着,调用Timer.schedule()方法创建另一个定时任务,使其在5秒后执行,并在其中调用Timer.cancel()方法取消该定时器。
当上述代码运行时,将输出“定时任务执行了!”几秒钟后将输出“定时器已经取消!”提示。
此外,Timer.cancel()方法也可以在TimerTask.run()方法中被调用以自动取消此定时任务。
Java中的定时器是一种常用的工具,它使用Timer类来实现。Timer.cancel()方法可以用于取消已经安排的任务。 在使用该方法时,请注意定时器的状态,以便在必要时正确地取消正在运行的任务。