0

Когда следует использовать поток Java вместо Executor?

2

Executor выглядит как чистая абстракция для управления потоками. В каких ситуациях имеет смысл использовать Thread напрямую, вместо того чтобы полагаться на более надежный Executor?

4 ответ(ов)

0

Чтобы дать немного истории, Executors были добавлены в стандарт Java только с версии 1.5. Таким образом, Executors можно рассматривать как новое и более качественное абстракция для работы с задачами Runnable.

Немного упрощая... - Executors — это потоки, реализованные правильно, поэтому рекомендуется использовать их в первую очередь.

0

Не имеет смысла использовать "сырые" потоки. Вы всегда можете передать Executors фабрику потоков, так что даже возможность создания пользовательских потоков обеспечена.

0

Вы не должны использовать Thread, если вам не нужно поведение, которое не реализовано в самом классе Thread. В таком случае вы можете расширить класс Thread и добавить необходимое вам поведение.

В противном случае просто воспользуйтесь интерфейсом Runnable или классом Executor.

0

Я подумал, что ThreadPoolExecutor обеспечивает лучшую производительность, поскольку управляет пулом потоков, минимизируя накладные расходы на создание новых потоков и выделение памяти.

Если вы собираетесь запускать тысячи потоков, он предоставляет функциональность очереди, которую вам пришлось бы реализовывать самостоятельно...

Потоки и исполнительные сервисы — это разные инструменты, используемые в разных сценариях. На мой взгляд, это похоже на вопрос, почему следует использовать ArrayList, когда можно использовать HashMap? Они различаются...

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь