-1

假设我有如下所示的一般计划任务 Timer t = new Timer();

    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 秒会发生什么?是否会在安排下一个时重新启动当前正在运行的一个?还是任务有自己的线程?希望很清楚。谢谢

4

1 回答 1

3

如果任务耗时超过 1 秒,后续任务将排队,直到有问题的任务完成。

根据javadoc

如果一个定时器任务花费了过多的时间来完成,它就会“占用”定时器的任务执行线程。反过来,这可以延迟后续任务的执行,这些任务可能会在(如果)有问题的任务最终完成时“聚集”并快速连续执行。

于 2012-11-07T19:25:58.310 回答