Различие между ScheduledExecutorService и развертыванием вашего собственного Runnable с Thread.sleep () - PullRequest
3 голосов
/ 31 мая 2011

Каковы преимущества использования ScheduledExecutorService * scheduleAtFixedRate() для регулярного выполнения фрагмента кода вместо создания нового Runnable , который имеет вечный цикл в сочетании с Thread.sleep(), который заставляет поток спать в течение требуемого периода?

Есть ли прирост производительности с помощью одного из методов?

1 Ответ

8 голосов
/ 31 мая 2011

Самым большим преимуществом использования ScheduledExecutorService является то, что вам не нужно писать код, и что он хорошо протестирован.Он также имеет поддержку отмены задач из коробки, и вы можете запланировать более одной задачи.

Другое преимущество состоит в том, что другие разработчики знают, что делает ScheduledExecutorService, они могут читать javadoc, и они могут задавать вопросы об этом на форумах учеников и получать помощь, в то время как получить помощь для пользовательского кода труднее..

Javadoc для ScheduledExecutorService также имеет хороший пример того, как создавать задачи, которые выполняются каждые 10 секунд в течение часа, а затем отменяются.

...