假设我有如下所示的常规计划任务 定时器t =新定时器();
TimerTask listenHandover = new TimerTask() {
public void run()
{
// Some methods that can possibly take more than 1 second to execute
}
};
t.schedule(listenHandover, 1000 , 1000);
正如评论所说,如果任务执行时间超过1秒会发生什么?当下一个计划安排时,当前正在运行的那个是否会重新启动?或者这些任务有自己的线程吗?希望很清楚。感谢
答案 0 :(得分:3)
如果任务花费的时间超过1秒,则后续任务将排队,直至完成任务完成。
根据javadoc
如果计时器任务需要过长的时间才能完成,它会“占用”计时器的任务执行线程。反过来,这可以延迟后续任务的执行,这些后续任务可能会在违规任务最终完成时(以及如果)快速连续地“聚集”并执行。