Voici le code:Pourquoi le programme attend-il que schedule() se termine mais n'attend pas 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();
}
}
Lors de l'exécution du code ci-dessus, le programme attend 5 secondes pour exécuter le calendrier() mais après qu'il se termine sans courir le scheduleWithFixedDelay().
Je suppose que la raison est que schedule() est exécuté de manière synchrone contrairement à scheduleWithFixedDelay() mais je n'ai pas trouvé les arguments en faveur de cela dans les docs.