我对Java 6中ScheduledExecutorService的scheduleAtFixedRate()方法有疑问。
[ 编辑 :1.6的Javadoc比1.5的更完整。见下面的评论]
鉴于:
在这种情况下会发生什么(在实时意义上,时间并不是绝对的):
服务是否保证可以执行以下任何操作?
还是其他什么?如果N> 1,答案是否会改变? 1?
答案 0 :(得分:7)
答案是
(b)阻止任务1完成
,无论执行程序的线程数是多少(task2甚至可能都没有提交)。
医生说:
如果此任务的执行时间超过其周期,则后续执行可能会延迟,但不会同时执行。
(顺便说一句,由于没有初始延迟,“task1”将立即启动,因为docs.ed:
执行将在initialDelay
之后开始
)。
答案 1 :(得分:1)
来自您关联的文档...
如果执行此任务的时间超过其周期,则后续执行可能会延迟,但不会同时执行。