【发布时间】:2013-07-23 06:05:51
【问题描述】:
我有一个 TimerTask,旨在以特定时间间隔收集指标。但是,任务执行的周期可能小于任务执行的时间(有时如果某些事情超时并被延迟)。
有没有办法在不等待前一个任务完成的情况下同时执行多个 TimerTasks 或 Runnables、线程等?
我知道Timer使用单线程,ScheduledThreadPoolExecutor不管速率如何都会延迟执行。
谢谢。
【问题讨论】:
-
那么您能否更具体地解释一下为什么
ScheduledThreadPoolExecutor.scheduleAtFixedRate(..)不适合您的需求? -
根据 API 和我使用它的测试... "如果此任务的任何执行时间超过其周期,则后续执行可能会延迟开始,但不会同时执行。 " 来自Java API
标签: java multithreading concurrency timer scheduling