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 执行定时任务时,需要手动关闭线程池,以确保程序正确退出。