由于各种原因,我知道必须使用此名称而不是java.util.Timer
。因此,为了研究这一点,我正在研究文档,并且我有几个问题:
scheduleWithFixedDelay()
如何工作? 我的理解是:它在给定的延迟后首先执行任务。任务完成后,它将等待指定的时间,然后再次执行任务。scheduleAtFixedRate()
提交任务要花比指定的延迟多得多的时间会发生什么?就像我希望任务每5秒执行一次,但需要10秒才能完成。 我的理解是,该任务将被保留在队列中,并且在有核心线程可用时将被执行scheduleWithFixedDelay()
和scheduleAtFixedRate()
有何不同的理解:scheduleWithFixedDelay()
等待任务完成执行,等待指定的时间,然后再次触发任务,因为scheduleAtFixedRate
将继续触发任务无需关心是否已完成。 正确?这样想: