📜  Java.util.Timer类(1)

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

Java.util.Timer类

Java.util.Timer类是一个在Java平台上实现定时任务的工具类。它能够以指定的时间间隔周期性地执行任务,也可以在指定的时间执行一次任务。

构造方法

Java.util.Timer类提供了一下三个构造方法:

Timer()
public Timer()

创建一个新的timer,其相关的线程使用后台级别的优先级。

Timer(boolean isDaemon)
public Timer(boolean isDaemon)

以守护线程的方式创建一个新的timer。如果isDaemon为true,则创建的线程为守护线程,否则为常规线程。

Timer(String name)
public Timer(String name)

使用指定的名称创建一个新的timer,其相关的线程使用后台级别的优先级。

方法

接下来,我们将介绍Java.util.Timer类提供的几个主要方法:

public void schedule(TimerTask task, long delay)
public void schedule(TimerTask task, long delay)

在delay毫秒后执行一次task任务。

public void schedule(TimerTask task, long delay, long period)
public void schedule(TimerTask task, long delay, long period)

在delay毫秒后执行一次task任务,并按照period毫秒的时间间隔周期性地执行task任务。

public void schedule(TimerTask task, Date time)
public void schedule(TimerTask task, Date time)

在time指定的时间执行一次task任务。

public void schedule(TimerTask task, Date firstTime, long period)
public void schedule(TimerTask task, Date firstTime, long period)

在firstTime指定的时间执行一次task任务,并按照period毫秒的时间间隔周期性地执行task任务。

public void cancel()
public void cancel()

终止此timer的操作,并且会丢弃所有还未执行的任务。

示例

下面是Java.util.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() {
      public void run() {
        System.out.println("Timer task executed.");
      }
    };
    timer.schedule(task, 5000);
  }
}

输出结果为:

Timer task executed.

以上示例中,我们使用Java.util.Timer类创建了一个timer,并创建了一个TimerTask对象作为任务,然后使用schedule()方法指定5秒后执行任务。执行结果为打印“Timer task executed.”一行文字。

总结

Java.util.Timer类是一个非常有用的定时任务工具类,它提供了简单易用的方法来执行定时任务。但需要注意的是,Timer类是单线程执行任务的,如果存在任务需要执行较长时间(如需要执行一段时间的IO操作),将会影响其它任务的执行,因此在并发任务执行场景下需要使用其它工具类来实现。