1
下面的代码:程序为什么要等待schedule()完成,但不等待scheduleWithFixedDelay()?
ScheduledExecutorService service = null;
try {
service = Executors.newSingleThreadScheduledExecutor();
Runnable task1 =() -> System.out.println("Executed only once");
Runnable task2 =() -> System.out.println("Executed repeatedly");
service.schedule(task1, 5, TimeUnit.SECONDS);
service.scheduleWithFixedDelay(task2, 6, 2, TimeUnit.SECONDS);
} finally {
if (service != null) {
service.shutdown();
}
}
当执行上面的代码程序等待5秒至运行时间表(),但之后它完成,而无需运行scheduleWithFixedDelay()。
我怀疑原因是schedule()与scheduleWithFixedDelay()同步执行,但我没有在文档中找到有利于此的参数。