Java Timer scheduleAtFixedRate() 方法



描述

Java Timer scheduleAtFixedRate(TimerTask task,Date firstTime,long period) 方法用于安排指定的任务以固定的速率重复执行,从指定时间开始。

声明

以下是 java.util.Timer.scheduleAtFixedRate() 方法的声明。

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

参数

  • task − 这是要安排的任务。

  • firstTime − 这是任务要执行的第一次时间。

  • period − 这是连续任务执行之间的时间(以毫秒为单位)。

返回值

异常

  • IllegalArgumentException − 如果 time.getTime() 为负数,则抛出此异常。

  • IllegalStateException − 如果任务已被安排或取消,计时器已被取消,或计时器线程已终止,则抛出此异常。

Java Timer scheduleAtFixedRate(TimerTask task,long delay,long period) 方法

描述

Java Timer scheduleAtFixedRate(TimerTask task,long delay,long period) 方法用于安排指定的任务以固定的速率重复执行,从指定的延迟后开始。

声明

以下是 java.util.Timer.scheduleAtFixedRate() 方法的声明。

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

参数

  • task − 这是要安排的任务。

  • delay − 这是任务执行之前的延迟时间(以毫秒为单位)。

  • period − 这是连续任务执行之间的时间(以毫秒为单位)。

返回值

异常

  • IllegalArgumentException − 如果 time.getTime() 为负数,则抛出此异常。

  • IllegalStateException − 如果任务已被安排或取消,计时器已被取消,或计时器线程已终止,则抛出此异常。

使用日期和固定延迟的定时器调度示例

以下示例演示了如何使用 Java Timer scheduleAtFixedRate(TimerTask, Date, Long) 方法以固定的速率和给定的日期以及固定的延迟来安排重复的定时器操作。我们使用 CustomTimerTask 对象创建了一个计时器对象。CustomTimerTask 是扩展 TimerTask 类并实现 run() 方法的自定义类,该方法将在预定的时间执行。然后我们创建了一个计时器对象,并使用 scheduleAtFixedRate() 方法安排一个任务,以给定的延迟执行该任务。

package com.tutorialspoint;

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

public class TimerDemo {
   public static void main(String[] args) {

      // creating timer task, timer
      TimerTask tasknew = new CustomTimerTask();
      Timer timer = new Timer();

      // scheduling the task
      timer.scheduleAtFixedRate(tasknew, new Date(), 1000); 

      try {
         Thread.sleep(1000);
      } catch (InterruptedException e) {
         System.out.println("Error");
      }
   }
}

class CustomTimerTask extends TimerTask {

   @Override
   public void run() {
      System.out.println("working on");
   }  
}

输出

让我们编译并运行上面的程序,这将产生以下结果。

working on
working on

使用给定延迟和延迟周期的固定速率定时器调度示例

以下示例演示了如何使用 Java Timer scheduleAtFixedRate(TimerTask, Long, Long) 方法以固定的速率、给定的初始延迟周期和固定的延迟来安排定时器操作。我们使用 CustomTimerTask 对象创建了一个计时器对象。CustomTimerTask 是扩展 TimerTask 类并实现 run() 方法的自定义类,该方法将在预定的时间执行。然后我们创建了一个计时器对象,并使用 scheduleAtFixedRate() 方法安排一个任务,以给定的延迟执行该任务。

package com.tutorialspoint;

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

public class TimerDemo {
   public static void main(String[] args) {

      // creating timer task, timer
      TimerTask tasknew = new CustomTimerTask();
      Timer timer = new Timer();

      // scheduling the task
      timer.scheduleAtFixedRate(tasknew, 100, 500); 

      try {
         Thread.sleep(1000);
      } catch (InterruptedException e) {
         System.out.println("Error");
      }
   }
}

class CustomTimerTask extends TimerTask {

   @Override
   public void run() {
      System.out.println("working on");
   }  
}

输出

让我们编译并运行上面的程序,这将产生以下结果。

working on
working on

使用日期、固定延迟和初始延迟的定时器调度示例

以下示例演示了如何使用 Java Timer scheduleAtFixedRate(TimerTask, Long, Long) 方法以固定的速率、给定的初始延迟周期和固定的延迟来安排定时器操作。我们使用 CustomTimerTask 对象创建了一个计时器对象。CustomTimerTask 是扩展 TimerTask 类并实现 run() 方法的自定义类,该方法将在预定的时间执行。然后我们创建了一个作为守护线程的计时器对象,并使用 scheduleAtFixedRate() 方法安排一个任务,以给定的延迟执行该任务。

package com.tutorialspoint;

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

public class TimerDemo {
   public static void main(String[] args) {

      // creating timer task, timer
      TimerTask tasknew = new CustomTimerTask();
      Timer timer = new Timer(true);

      // scheduling the task
      timer.scheduleAtFixedRate(tasknew, 100, 500);

      try {
         Thread.sleep(1000);
      } catch (InterruptedException e) {
         System.out.println("Error");
      }
   }
}

class CustomTimerTask extends TimerTask {

   @Override
   public void run() {
      System.out.println("working on");
   }  
}

输出

让我们编译并运行上面的程序,这将产生以下结果。

working on
working on
java_util_timer.htm
广告