9.23. 什么是 Java Timer 类?如何创建一个有特定时间间隔的任务?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论