如何在 Java 中排程任務以重複固定速率執行,從指定時間開始
Timer 類的一種方法是 void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)。此方法計劃指定任務以重複固定速率執行,從指定時間開始。
在固定速率執行中,每個執行都相對於初始執行的計劃執行時間進行計劃。固定速率執行適用於響應絕對時間的重複活動。同樣,固定速率執行適用於排程必須保持同步的多個重複計時器任務。
宣告 − java.util.Time.scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 方法的宣告如下:
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
這裡,task 是要排程的任務,firstTime 是執行任務的第一次時間,period 是連續任務執行之間以毫秒為單位的時間。
scheduleAtFixedRate(Timertask task, Date firstTime, long period) 方法丟擲一些異常。它們如下所示:
IllegalArgumentException | 如果 firstTime.getTime 為負數或 period <= 0,則丟擲此異常。 |
IllegalStateException | 如果任務事先已排程或取消,計時器已取消或計時器執行緒已終止,則丟擲此異常。 |
NullPointerException | 如果任務為空,則丟擲此異常。 |
讓我們看一個示例,該示例演示如何在 Java 中排程任務以重複固定速率執行,從指定時間開始:
示例
import java.util.*; class MyTask extends TimerTask { public void run() { System.out.println("Task is running"); } } public class Example { public static void main(String[] args) { Timer timer = new Timer(); // creating timer TimerTask task = new MyTask(); // creating timer task timer.scheduleAtFixedRate(task,new Date(),2000); // scheduling the task at the specified time at fixed-rate } }
輸出
Task is running Task is running Task is running Task is running Task is running
廣告