コードです:なぜプログラムは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()とは異なり、同期して実行されていると考えていますが、ドキュメントでこれを支持する引数が見つかりませんでした。