У меня есть приложение в java, в котором мне нужно планировать команды для запуска после определенной задержки, что я должен использовать Timer или ThreadPool и почему?Что использовать таймер или ThreadPool в java?
0
A
ответ
2
Я бы рекомендовал вам использовать ScheduledExecutorService
. Обоснование: much более легкий в использовании, чем Timer
или TimerTask
.
Вы можете получить его, используя, например, Executors.newScheduledThreadPool()
.
2
Если вы используете Spring, другое решение - @Scheduled
. Просто аннотируйте желаемый метод с помощью этой аннотации и укажите задержку или определенное время, когда вы хотите вызвать. Преимущество состоит в том, что вам не нужен новый класс, реализующий Runnable и относящийся к вам с помощью нескольких потоков (хотя рамки Executors просты в использовании). Но вам нужен класс, у которого метод с аннотацией будет Spring Bean; также метод должен возвращать пустоту и не иметь аргументов.
Это на самом деле это просто:
@Scheduled(fixedRate = 5000)//the method is called once every 5 seconds
public void myScheduledMethod() {
//do you stuff
}
Благодарность за suggession, но я не беспокоил с реализацией, Есть ли другое обоснование в его использовании. –
@AnkitZalani Ну да, это Just Works (tm), он был написан людьми, которые действительно знают их вещи, как таковые, по сути, без ошибок;) Кроме того, у вас есть все «ExecutorService» в вашем распоряжении тоже – fge
I просто посмотри на это. Кажется перспективным. Спасибо ... –