Sobes.tech
Back to questions
Senior
7

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

Companies where asked
ИП Ганус Александр Андреевич

Answer from AI

sobes.tech AI

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

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

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

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

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

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