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