Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: executorservice

Какие типы ExecutorService ты знаешь?

Вопрос проверяет знание стандартных реализаций пулов потоков и понимание, когда какой пул использовать.

Короткий ответ

В Java есть несколько стандартных реализаций ExecutorService.
Они отличаются количеством потоков и стратегией выполнения задач.
Каждый тип подходит под свой сценарий нагрузки.
Неправильный выбор пула может привести к проблемам производительности.

Длинный ответ

Java предоставляет готовые реализации ExecutorService через фабрику Executors.

Основные типы ExecutorService

1) FixedThreadPool

Пул с фиксированным количеством потоков.

Характеристики:

  1. Ограниченное число потоков

  2. Задачи ставятся в очередь

  3. Хорошо подходит для CPU-bound задач

Пример:

ExecutorService executor = Executors.newFixedThreadPool(4);

2) CachedThreadPool

Пул с динамическим количеством потоков.

Особенности:

  1. Потоки создаются по необходимости

  2. Неиспользуемые потоки переиспользуются

  3. Опасен при большом числе задач

Применяется для:

  1. Коротких асинхронных задач

  2. Нерегулярной нагрузки

3) SingleThreadExecutor

Пул с одним рабочим потоком.

Гарантирует:

  1. Последовательное выполнение задач

  2. Отсутствие гонок данных внутри пула

Используется, когда:

  1. Важен порядок выполнения

  2. Нельзя выполнять задачи параллельно

4) ScheduledExecutorService

Пул для отложенных и периодических задач.

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

ScheduledExecutorService scheduler =
        Executors.newScheduledThreadPool(2);

Почему важно знать различия

Разные пулы:

  1. По-разному используют ресурсы

  2. По-разному ведут себя под нагрузкой

  3. Могут как улучшить, так и ухудшить систему

Краткий вывод

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Java

    Java

Ключевые слова

#executorservice

Подпишись на Java Developer в телеграм