Необходимо ли всегда использовать ExecutorService вместо того, чтобы запустить собственный поток?

С JDK> = 1.5, должен предпочтительный способ запустить поток всегда быть Сервисом Исполнителя или Исполнителя или там все еще причины предпочесть использовать Thread.start, если Вам не нужно в том, что обеспечивает ExecutorService?

Для синхронизируемого я раньше думал, что с помощью новой Блокировки implemenations был предпочтен, пока мне не объяснили иначе. Таким образом, я задаюсь вопросом то же самое об Исполнителях. Они - просто способ обработать более сложные случаи, или они должны быть стандартным выбором?

14
задан Yishai 13 July 2010 в 12:49
поделиться

2 ответа

Лично я, начиная с Java 5, полностью отказался от Thread и ThreadGroup, поскольку они предоставляют гораздо меньше настроек и функциональности, чем ExecutorService.

При использовании ExecutorService я знаю, что могу использовать Callable, я знаю, что могу (с небольшими накладными расходами) планировать повторяющиеся задачи. Как следствие, я считаю прямое инстанцирование объектов Thread устаревшим кодом, как Vector и Hashtable.

10
ответ дан 1 December 2019 в 12:37
поделиться

Параллелизм в Java на практике , по крайней мере, четко указано в разделе 6.2.:

Первичная абстракция для выполнения задач в библиотеках классов Java - это не Thread , а Исполнитель . [...]

Использование Executor - обычно самый простой путь к реализации дизайна производителя-потребителя в вашем приложении.

10
ответ дан 1 December 2019 в 12:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: