В чём разница между созданием потока через 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-коде для эффективного управления многопоточностью, предотвращения утечек ресурсов и повышения производительности.