线程任务的Java并发执行

时间:2010-09-06 10:12:23

标签: java concurrency timer schedule

我有一项需要按计划执行的任务。 (它基本上轮询数据库以查找更改,然后根据结果执行代码)。问题是我需要轮询任务,即使它已经在执行。

到目前为止,我尝试使用带有scheduleAtFixedRate()方法的Timer / TimerTask组合和带有scheduleAtFixedRate()方法的ScheduledThreadPoolExecutor / Thread组合。

两者都在等待当前计划任务完成后再运行下一个任务。我需要能够安排一个任务每5秒运行一次,即使最后一次执行任务还没有完成,它也会运行。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

如何使用一个Timer作为“启动”计时器,然后使用单独的线程池执行:当计时器滴答时,将任务提交给线程池以立即执行。 (您可能希望调整线程池以同时运行一些最大数量的任务。)