Стек: Java 11+
Цель: понять, что такое ForkJoinPool, как он работает под капотом, когда его использовать — и когда лучше не трогать. Представьте: вам нужно обработать огромный массив данных, найти сумму, отсортировать, применить сложную функцию.
Вы можете сделать это последовательно — но это медленно.
Или разбить задачу на подзадачи, выполнить их параллельно — и собрать результат. Именно для таких рекурсивно разделяемых задач (divide-and-conquer) и был создан ForkJoinPool — особый пул потоков, введённый в Java 7 и улучшенный в последующих версиях (включая Java 11). ForkJoinPool — это специализированный ExecutorService, оптимизированный для выполнения большого числа мелких задач, которые могут: Особенность Объяснение Work-stealing Потоки «крадут» задачи у других, если их собственная очередь пуста → максимальная загрузка CPU. Рекурсивная декомпозиция Идеально для задач вроде quickSort, map, reduce. Число потоков ≈ числу ядер По умолчанию: ForkJoinPool.commonPool() использует Runtime.