📜  java timer - Java (1)

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

Java Timer

Java Timer 是一个 Java 标准库中的类,可以用于在固定时间间隔内执行任务。它允许我们在指定时间后或者在固定周期内运行某些任务。

创建 Timer 对象

我们可以使用 java.util.Timer 类来创建一个 Timer 对象。可以通过 no-arg 构造函数或者带有 boolean 参数的构造函数来创建 Timer 对象。

import java.util.Timer;

public class MyProgram {
  public static void main(String[] args) {
    // 创建 Timer 对象
    Timer timer = new Timer();
  }
}
创建 TimerTask

我们需要为 Timer 创建一个 TimerTask 对象,它将在定时器超时时运行。您可以通过扩展 java.util.TimerTask 类或创建匿名内部类来创建 TimerTask:

import java.util.Timer;
import java.util.TimerTask;

public class MyProgram {
  public static void main(String[] args) {
    Timer timer = new Timer();

    TimerTask task = new TimerTask() {
      @Override
      public void run() {
        System.out.println("Timer task is running.");
      }
    };

    // 每 5 秒运行一次任务
    timer.schedule(task, 0, 5000);
  }
}

在上面的示例中,我们运行一个简单的任务,它将每 5 秒输出一条消息。

定时器的使用

我们可以使用定时器以固定时间间隔运行任务。以下示例演示如何在指定时间运行任务:

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class MyProgram {
  public static void main(String[] args) {
    Timer timer = new Timer();

    TimerTask task = new TimerTask() {
      @Override
      public void run() {
        System.out.println("Timer task is running.");
      }
    };

    // 在指定时间运行任务
    Calendar date = Calendar.getInstance();
    date.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    date.set(Calendar.HOUR_OF_DAY, 0);
    date.set(Calendar.MINUTE, 0);
    date.set(Calendar.SECOND, 0);
    date.set(Calendar.MILLISECOND, 0);

    timer.schedule(task, date.getTime());
  }
}

在上面的示例中,我们使用 java.util.Calendar 类指定从下周日早上 12:00 开始运行任务。

取消定时器

您可以使用 java.util.Timer 类的 cancel() 方法来取消定时器。以下示例演示如何在某个时间取消 Timer 对象:

import java.util.Timer;
import java.util.TimerTask;

public class MyProgram {
  public static void main(String[] args) {
    Timer timer = new Timer();

    TimerTask task = new TimerTask() {
      @Override
      public void run() {
        System.out.println("Timer task is running.");
      }
    };

    // 启动定时器
    timer.schedule(task, 0, 5000);

    // 在 30 秒后取消定时器
    try {
      Thread.sleep(30000);
      timer.cancel();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}

在上面的示例中,我们在 30 秒后取消定时器。在实际应用中,您可以根据需要选择取消定时器的时间。

结论

Java Timer 是一个强大和灵活的工具,可帮助您管理时间间隔。它易于使用,并且可以帮助您编写出更高效的代码。