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