Java计时器计划任务执行速度

时间:2012-11-07 19:24:37

标签: java timer scheduled-tasks

假设我有如下所示的常规计划任务                 定时器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秒会发生什么?当下一个计划安排时,当前正在运行的那个是否会重新启动?或者这些任务有自己的线程吗?希望很清楚。感谢

1 个答案:

答案 0 :(得分:3)

如果任务花费的时间超过1秒,则后续任务将排队,直至完成任务完成。

根据javadoc

  

如果计时器任务需要过长的时间才能完成,它会“占用”计时器的任务执行线程。反过来,这可以延迟后续任务的执行,这些后续任务可能会在违规任务最终完成时(以及如果)快速连续地“聚集”并执行。