当前位置: 代码迷 >> Java相关 >> Timer没按预计的延迟时间启动task
  详细解决方案

Timer没按预计的延迟时间启动task

热度:361   发布时间:2016-04-22 21:47:00.0
Timer没有按预计的延迟时间启动task
用一个Timer延迟启动一个Task: timer.schedule(timerTask, deltaTime);
在timerTask再次使用timer来确定下次启动timerTask的时间。出现的问题:timertask没有按照计划deltaTime的时间间隔,有时会比预计多延迟出10几分钟,最多的时候甚至一个小时左右。请问大牛们,这是什么原因导致的?有什么方法可以解决?

------解决方案--------------------
如果是循环任务,应该使用schedule(TimerTask task, long delay, long period) 

非循环任务,仅仅执行一次,也就是计划好任务后delay(毫秒)执行,这个应该不会错的,至少我没遇到过。
------解决方案--------------------
引用:
Quote: 引用:

间隔时间是任务完成后开始算,如果你的任务运行时间比较长下一个任务就会延时。
我是在任务完成后再调用一次timer.schedule(timerTask, deltaTime);设置下次运行的时间

一个timer是单线程的,如果有多个任务在跑,也有可能延迟。
  相关解决方案