我创建了一个Timer
对象:
Timer timer = new Timer()
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
doSomething();
}
});
timer.schedule(timerTask, 0, 10 * 1000);
这是一个每10秒运行一次的计时器。当完成运行所需的时间doSomething()
大于间隔时会发生什么?计时器是否等待run()
完成再次开始间隔之前?
答案 0 :(得分:0)
来自JavaDocs
每次执行都是相对于上一次执行的实际执行时间进行调度的。如果执行因任何原因(例如垃圾收集或其他后台活动)而延迟,则后续执行也会延迟
如果没有更多细节,我建议您查看Timer#scheduleAtFixedRate