Java计时器:从基础到高级应用的完整指南
行业新闻
2026-05-13 22:50
59
活动:桔子数据-爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看
Java计时器:从基础到高级应用的完整指南
在Java编程中,计时器(Timer)是一种非常有用的工具,它可以用于执行重复性任务、测量代码执行时间、以及在特定时间后执行某些操作等。本文将带您从基础到高级,全面了解Java中的计时器及其应用。
基础:java.util.Timer
在Java中,java.util.Timer类是计时器功能的基础。这个类允许你安排任务在将来的某个时间执行一次,或者在指定的周期内重复执行。
创建一个基本的Timer
import java.util.Timer;
import java.util.TimerTask;
public class TimerExample {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("任务执行:" + System.currentTimeMillis());
}
};
timer.schedule(task, 1000); // 安排任务在1秒后执行一次
}
}
周期性任务
如果你想让任务定期执行,可以使用scheduleAtFixedRate或schedule(使用true作为其最后一个参数)方法。区别在于scheduleAtFixedRate会尽可能以固定的频率执行任务,而schedule则会在每个任务完成后再开始下一个任务。
timer.scheduleAtFixedRate(task, 1000, 2000); // 每隔2秒执行一次任务,首次在1秒后执行
高级:java.util.concurrent.ScheduledExecutorService
对于更复杂的并发应用,推荐使用java.util.concurrent.ScheduledExecutorService。它提供了更强大的功能和更好的并发控制。
创建一个ScheduledExecutorService实例并安排任务
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledExecutorServiceExample {
public static void main(String[] args) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
Runnable task = () -> System.out.println("任务执行:" + System.currentTimeMillis());
scheduler.scheduleAtFixedRate(task, 1, 2, TimeUnit.SECONDS); // 与Timer的用法相似,但更强大和灵活。
}
}
在这个例子中,我们创建了一个ScheduledExecutorService实例,然后安排了一个任务每2秒执行一次。注意我们使用的是TimeUnit来指定时间单位,这增加了代码的可读性和灵活性。当不再需要调度器时,别忘了关闭它:scheduler.shutdown()。
标签:
- 根据您提供的文本
- 我提取了以下5个关键词: 1.Java计时器 2.java.util.Timer 3.TimerTask 4.ScheduledExecutorService 5.并发应用