同时启动多个Java TimerTasks

时间:2013-09-07 22:00:51

标签: java performance scheduled-tasks timertask

是否可以安排多个TimerTasks,使它们全部同时开始,如果是这样,我该怎么做?特别是我想在同一时间启动这些任务,以便每个任务之间的相对时间差异符合规定(我希望尽可能准确)。

toneIntervalClock.scheduleAtFixedRate(tonePlayerTask, 250, 5000);
startRecordingClock.scheduleAtFixedRate(startRecordingTask,0,5000);
stopRecordingClock.scheduleAtFixedRate(stopRecordingTask, 1000, 5000);

使用相同的Util Timer来安排每项任务也会更好吗? 谢谢

1 个答案:

答案 0 :(得分:0)

系统会尝试以低抖动启动scheduleAtFixedRate任务,但是你不会得到任何并发保证。

尝试初始化所有任务然后运行它们的方法是一个不错的方法。我要做的唯一建议是使用Timer#scheduleAtFixedRate(TimerTask task, Date firstTime, long period),从那时起您的schedule次来电之间就没有任何抖动,并且可以通过固定的时间参考来启动它们。