scheduleAtFixedRate
方法確實支持周期性任務和一次性任務。具體來說,它既可以用于安排周期性執行的任務,也可以用于安排僅執行一次的任務。以下是相關介紹:
scheduleAtFixedRate
方法,可以創建一個定時任務,該任務會在指定的時間間隔內重復執行。scheduleAtFixedRate
方法的第三個參數(即時間間隔)設置為0時,該方法將安排一個任務僅執行一次。Runnable
對象、一個初始延遲時間、一個時間間隔以及時間單位,可以使用scheduleAtFixedRate
方法創建一個周期性任務。scheduleAtFixedRate
方法可以確保任務僅執行一次。import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledTaskExample {
public static void main(String[] args) {
// 創建一個ScheduledExecutorService
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
// 創建一個Runnable任務
Runnable task = () -> System.out.println("Task executed at " + System.currentTimeMillis());
// 安排一個周期性任務,每隔1秒執行一次
executor.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);
// 安排一個一次性任務,立即執行
executor.scheduleAtFixedRate(task, 0, 0, TimeUnit.SECONDS);
}
}
在這個示例中,我們首先創建了一個ScheduledExecutorService
,然后定義了一個簡單的Runnable
任務。接著,我們使用scheduleAtFixedRate
方法安排了兩個任務:一個周期性任務,每隔1秒執行一次;一個一次性任務,立即執行一次。
總之,scheduleAtFixedRate
方法通過靈活的時間間隔設置,支持了周期性任務和一次性任務的執行。