📜  Java中的定时器 cancel() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:02:01.946000             🧑  作者: Mango

Java中的定时器 cancel() 方法及示例

Java中的定时器(Timer)是一种常用的实现定时任务的工具。其中,Timer类提供了许多关于定时器的方法,其中cancel()方法可以用来取消已经安排的定时任务。

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()方法可以用于取消已经安排的任务。 在使用该方法时,请注意定时器的状态,以便在必要时正确地取消正在运行的任务。