如何在 Java 中排程任務,使其以固定的延遲重複執行,並在指定的延遲後開始
Timer 類中的一個方法是 void schedule(TimerTask task, long delay, long period) 方法。此方法安排任務以固定的延遲重複執行,從指定的延遲後開始。
在固定延遲執行中,每個執行都是相對於前一個執行的原始執行時間進行計劃的。如果執行由於某種原因延遲(例如,垃圾回收),則後續執行也將延遲。
宣告 − java.util.Timer.schedule(TimerTask task, long delay, long period) 的宣告如下:
public void schedule(TimerTask task, long delay, long period)
這裡,task 是要排程的任務,delay 是任務執行前的延遲時間(以毫秒為單位),period 是連續任務執行之間的時間間隔(以毫秒為單位)。
這裡,task 是要排程的任務,firstTime 是任務首次執行的時間,period 是連續任務執行之間的時間間隔(以毫秒為單位)。
schedule(Timertask task, long delay, long period) 方法會丟擲一些異常。它們如下:
| IllegalArgumentException | 如果 delay 為負數,或 delay + System.currentTimeMillis() 為負數,或 period <= 0,則丟擲此異常。 |
| IllegalStateException | 如果任務之前已安排或取消,計時器已取消,或計時器執行緒已終止,則丟擲此異常。 |
| NullPointerException | 如果 task 為空,則丟擲此異常。 |
讓我們看一個演示 void schedule(TimerTask task, long delay, long period) 方法用法的程式:
示例
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
// scheduling the task for repeated fixed-delay execution, beginning after the specified delay
timer.schedule(task, 800, 1000);
}
}輸出
Task is running Task is running Task is running Task is running Task is running Task is running Task is running Task is running Task is running
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP