Я использую ScheduledExecutorServiceв своем приложении. Мне нужно время от времени использовать его в определенном классе Utility для запуска запланированных потоков.
Хорошо ли хранить ScheduledExecutorServiceв статическом поле? Нужно ли в таком случае вызывать ScheduledExecutorService.shutdown()? Каков риск, если я не вызову завершение работы?
Вот что я подумал сделать:
private static ScheduledExecutorService exec = Executors.newScheduledThreadPool(5);
public void scheduleTask(String name) {
Future<?> future = futuresMapping.get(name);
if(future!=null && !future.isDone())
future.cancel(true);
//execute once
Future<?> f = scheduledExecutor.schedule(new MyTask()), 1, TimeUnit.MINUTES);
futuresMapping.put(name, f);
}
Спасибо