【发布时间】:2019-03-27 09:12:54
【问题描述】:
我正在编写一段需要定期安排 Runnable 的代码。我正在使用 ScheduledExecutorService.scheduleWithFixedDelay,初始延迟为 0,延迟为 2 分钟。此 SchedulerService 中只有任务。我预计该任务的第二次执行将在第一次执行任务完成后 2 分钟开始。为了验证这一点,我在调试模式下启动了我的应用程序,并在可运行任务的开头放置了一个断点。第一次执行在断点处停止,执行任务的线程进入挂起状态。令我惊讶的是,在第一次执行任务开始 2 分钟后,SchedulerService 启动新线程来执行第二次执行任务。我期待除非第一次执行完成,否则 ScheduledExecutorService.scheduleWithFixedDelay 不会开始第二次执行。请帮助我理解这种行为,因为这与 Javadoc 对此方法的解释相矛盾。
【问题讨论】:
-
请发布您的代码,以便人们可以查看它作为需要更改的建议。
标签: java scheduling