Java.util.Timer 类

java.util.Timer.scheduleAtFixedRate() 方法用于安排指定任务重复固定速率执行,在指定的延迟后开始。随后的执行大约以固定的时间间隔进行,并以指定的周期分隔。

语法

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

参数

task 指定要调度的任务。
delay 指定延迟执行任务之前的毫秒数。
period 指定连续任务执行之间的时间(以毫秒为单位)。

返回值

void类型。

异常

  • 抛出 IllegalArgumentException,如果延迟 < 0,或延迟 + System.currentTimeMillis() < 0,或周期 <= 0。
  • 抛出 IllegalStateException,如果任务已安排或已取消、计时器被取消或计时器线程终止。
  • 如果任务为 null,则抛出 NullPointerException

示例:

在下面的示例中,java.util.Timer.scheduleAtFixedRate() 方法用于安排给定任务重复固定速率执行,在指定的时间之后开始

import java.util.*;

public class MyClass {
  public static void main(String[] args) {
    //创建定时器
    Timer timer = new Timer();

    //创建一个定时器任务
    TimerTask tt = new TimerTask() {
      public void run() {
        System.out.println("Working on the task.");
      };
    };
    
    //安排任务在a之后执行
    //延迟1000毫秒然后执行
    //以500毫秒为周期重复
    timer.scheduleAtFixedRate(tt, 1000, 500);
  }
}

上述代码的输出将是:

Working on the task.
Working on the task.
Working on the task.
Working on the task. 
and so on ...