ScheduledExecutorService, наметьте различные задачи в различных интервалах

Я хочу иметь две задачи - HandlerA и HandlerB, выполняемый каждые 10 и каждые 20 секунд соответственно. Если это решение неправильное, что лучший способ состоит в том, чтобы достигнуть этого?

ScheduledExecutorService stp = Executors.newScheduledThreadPool(8);
stp.scheduleAtFixedRate(new HandlerA(), 0, 10, TimeUnit.SECONDS);
stp.scheduleAtFixedRate(new HandlerB(), 0, 20, TimeUnit.SECONDS);

запланированная задача переписана, когда я намечаю другой?

1
добавлено
Просмотры: 2
nl ja de
Что происходит, когда вы пробуете его?
добавлено автор dty, источник
только первая задача была выполнена. Я признаю, что мой пример кода не подходил в целях тестирования. Первая задача, просто неудавшаяся тихо и поэтому, не была перенесена, как я узнал.
добавлено автор Michael T, источник

2 ответы

Ваше решение правильно. Вы - планирование 2 отдельные задачи. У вашего ScheduledThreadPoolExecutor есть основной размер бассейна = 8, этого более чем достаточно, чтобы выполнить 2 запланированных задачи параллельно.

2
добавлено

Почему вы спрашиваете? То решение прекрасно. Каждая просьба scheduleAtFixedRate начинает отдельный планировщик, т.е. добавляющий HandlerA дважды управляет им с двумя независимыми планировщиками.

1
добавлено