ScheduledThreadPoolExecutor 是一個定時執行任務的線程池,它繼承自 ThreadPoolExecutor 類,并實現了 ScheduledExecutorService 接口。可以用來執行定時任務的線程池。
下面是一個使用 ScheduledThreadPoolExecutor 的示例:
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
// 創建 ScheduledThreadPoolExecutor 實例,指定線程池大小為 5
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(5);
// 使用 schedule 方法執行定時任務,延遲 1 秒后執行
executor.schedule(new Runnable() {
@Override
public void run() {
System.out.println("Task executed!");
}
}, 1, TimeUnit.SECONDS);
// 關閉線程池
executor.shutdown();
}
}
上面的代碼創建了一個 ScheduledThreadPoolExecutor 實例,指定線程池大小為 5。然后使用 schedule 方法執行一個定時任務,延遲 1 秒后執行。在任務執行時,會打印出 “Task executed!”。最后調用 shutdown 方法關閉線程池。
ScheduledThreadPoolExecutor 還提供了其他的方法來執行定時任務,如 scheduleAtFixedRate 和 scheduleWithFixedDelay 方法,可以按固定的時間間隔重復執行任務。
需要注意的是,在使用 ScheduledThreadPoolExecutor 執行定時任務時,需要手動關閉線程池,以確保程序正確退出。