Sobes.tech
Назад к вопросам
Senior
5

В чём разница между созданием потока через ExecutorService и через new Thread?

Компании, где спрашивали
ИП Ганус Александр Андреевич

Ответ от нейросети

sobes.tech AI

Основное различие между созданием потока через new Thread() и использованием ExecutorService заключается в управлении жизненным циклом и масштабируемости:

  • new Thread() создаёт новый поток напрямую. Это просто, но неэффективно при большом количестве задач, так как каждый поток потребляет ресурсы ОС, и их создание/удаление дорогостоящи.

  • ExecutorService — это высокоуровневый API для управления пулом потоков. Он позволяет переиспользовать потоки, управлять очередью задач, контролировать количество одновременно работающих потоков и корректно завершать работу.

Пример использования ExecutorService:

ExecutorService executor = Executors.newFixedThreadPool(5);
executor.submit(() -> {
    // задача
});
executor.shutdown();

Использование ExecutorService предпочтительно в production-коде для эффективного управления многопоточностью, предотвращения утечек ресурсов и повышения производительности.