Помимо ForkJoinPool есть ThreadPoolExecutor и ScheduledThreadPoolExecutor: первый управляет рабочими потоками и очередью, второй — отложенными и периодическими задачами. Fixed, cached и single — варианты конфигурации.
Какие пулы потоков есть в Java (помимо ForkJoinPool)?
Помимо ForkJoinPool есть ThreadPoolExecutor и ScheduledThreadPoolExecutor: первый управляет рабочими потоками и очередью, второй — отложенными и периодическими задачами. Fixed, cached и single — варианты конфигурации.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Помимо ForkJoinPool есть ThreadPoolExecutor и ScheduledThreadPoolExecutor: первый управляет рабочими потоками и очередью, второй — отложенными и периодическими задачами. Fixed, cached и single — варианты конфигурации.
При выборе важны core/max размер, очередь, keep-alive и политика отказа. Неограниченная очередь может скрыть перегрузку ростом памяти и задержки, а неограниченное число потоков — исчерпать ресурсы. Исполнитель виртуальных потоков на задачу не является обычным пулом переиспользуемых workers. Независимо от модели ограничивают число одновременных обращений к БД и другим дефицитным ресурсам.