【发布时间】:2011-10-21 15:37:18
【问题描述】:
我必须在一天中的不同时间异步启动 10 个任务,直到第二天的某个小时。越接近第二天的时间,我就越需要重复这 10 项任务。
我的问题是,我应该如何处理?我应该使用哪些执行器?管理内存的最佳方法是什么?
我想过使用 Executors.newScheduledThreadPool 可以在可变时间启动一个包含 10 个任务的线程池进程。这个问题需要我启动一组新的任务,即使前一组任务还没有完成(所以可能每次都会触发一个新的线程池)。
我也在考虑使用某种进程注册表来管理已启动的不同进程。当一个进程不再被使用时,注册表可以停止它。
每次任务完成时,我都会考虑刷新可运行对象,并停止线程池。这总体上是一个好的解决方案吗?
可能出现的问题是线程池使内存饱和。也许对线程池设置时间限制?
【问题讨论】:
标签: java threadpool scheduled-tasks