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