9.23. 什么是 Java Timer 类?如何创建一个有特定时间间隔的任务?

发布于 2023-05-08 12:33:30 字数 1044 浏览 55 评论 0

java.util.Timer 是一个工具类,可以用于安排一个线程在未来的某个特定时间执行。Timer 类可以用安排一次性任务或者周期任务。

java.util.TimerTask 是一个实现了 Runnable 接口的抽象类,我们需要去继承这个类来创建我们自己的定时任务并使用 Timer 去安排它的执行。

Java Timer 类是一个用于调度和执行重复定时任务的工具类,它的实现原理是基于线程的。

使用 Timer 类可以定时执行任务,可以设定任务在指定的延迟时间后执行,或者指定任务每隔指定时间重复执行。Timer 的核心类是 java.util.Timer,它提供了 schedule() 和 scheduleAtFixedRate() 两种调度任务的方法。

schedule() 方法用于在指定延迟后执行任务,可以指定任务只执行一次,也可以指定任务每隔指定时间执行一次。例如,下面的代码使用 schedule() 方法定时5秒钟后执行任务:

Timer timer = new Timer();
timer.schedule(new TimerTask() {
    @Override
    public void run() {
        System.out.println("任务执行了");
    }
}, 5000);

scheduleAtFixedRate() 方法用于按照指定的时间间隔重复执行任务,任务的执行周期是固定的。例如,下面的代码使用 scheduleAtFixedRate() 方法每隔2秒钟执行一次任务:

Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
    @Override
    public void run() {
        System.out.println("任务执行了");
    }
}, 0, 2000);

需要注意的是,Timer 是单线程的,如果定时任务的执行时间过长,会影响后续任务的执行,甚至导致任务堆积。因此,在多任务场景下,更好的选择是使用 ScheduledExecutorService 类。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

热鲨

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

eins

文章 0 评论 0

世界等同你

文章 0 评论 0

毒初莱肆砂笔

文章 0 评论 0

初雪

文章 0 评论 0

miao

文章 0 评论 0

qq_zQQHIW

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文