Разница между:
A)
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
ScheduledFuture<> periodicTask = executorService.scheduleAtFixedRate(() -> {
try {
doSomething();
} catch (Exception e) {
log.error("Unhandled exception caught whilst doing minutely run", e);
}
}, initialDelay, PERIOD, TimeUnit.MILLISECONDS);
// In a shutdown hook:
periodicTask.cancel(true);
Это отменяет все запущенные задачи? Убивает ли это ExecutorService?
Б) Другой способ:
executorService.shutdown();
executorService.awaitTermination(....);
Какая разница?
Кроме того, как мне узнать, сколько задач в будущем планирует executorservice?
Как только я получаю сигнал о завершении работы, я просто хочу запустить запланированную задачу еще 2-3 раза, пока не достигну определенного состояния. После этого я хочу убить его.