ScheduledThreadPoolExecutor 系统重启
时间: 2023-10-14 21:04:17 浏览: 216
Java并发编程之美_部分81
当系统重启时,ScheduledThreadPoolExecutor 的调度任务会被暂停,并且已经提交但尚未执行的任务会丢失。这是因为 ScheduledThreadPoolExecutor 是基于线程池的定时调度器,它使用线程池中的线程来执行任务。当系统重启时,线程池中的线程会被销毁,任务也就无法继续执行。
如果你希望在系统重启后能够恢复之前的调度任务,可以考虑将任务的调度信息持久化保存到外部存储介质中,例如数据库或者文件。当系统重启后,可以读取保存的调度信息,并重新提交任务到 ScheduledThreadPoolExecutor 中。
另外,还可以考虑使用更高级别的调度框架,如 Quartz Scheduler,它提供了更完善的任务调度管理功能,并且具备持久化调度信息的能力,可以更好地适应系统重启等情况。
阅读全文