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秒后执行一次
    }
}

周期性任务

如果你想让任务定期执行,可以使用scheduleAtFixedRateschedule(使用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.并发应用