Мне нужно запланировать некоторую работу, которая будет выполнена в будущем. Я могу сделать это двумя способами:
-
Создайте
TimerTask
и выполнитеtimer.schedule(...);
-
Используйте
Executors.newScheduledThreadPool(1)
:ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); ScheduledFuture <?> scheduleHandle = scheduler.schedule(pushExternalRunnable, runScheduleDate.getTime() - now.getTime(), TimeUnit.MILLISECONDS);
В чем разница между этими двумя способами планирования работы в будущем?