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
廣告