读书人

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

发布时间: 2013-07-09 09:50:48 作者: rapoo

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是单线程的,如果有多个任务在跑,也有可能延迟。

读书人网 >Java相关

热点推荐