Встречается на собеседованиях • сегодня

Что такое ForkJoinPool

ForkJoinPool — это специализированная реализация ExecutorService для работы с задачами, которые можно рекурсивно разбивать на подзадачи (fork) и затем объединять результаты (join). Оптимизирован для работы с алгоритмами типа "разделяй и властвуй", например, параллельная сортировка или обход деревьев. Особенности: - Использует work-stealing алгоритм: свободные потоки "крадут" задачи у занятых. - Подходит для рекурсивных задач с высокой степенью параллелизма. - По умолчанию использует `Runtime.getRuntime().availableProcessors()` потоков. Пример: ```java class FibonacciTask extends RecursiveTask { final int n; FibonacciTask(int n) { this.n = n; } protected Integer compute() { if (n <= 1) return n; FibonacciTask f1 = new FibonacciTask(n - 1); f1.fork(); // Асинхронный запуск подзадачи FibonacciTask f2 = new FibonacciTask(n - 2); return f2.compute() + f1.join(); // Ожидание результата и объединение } } // Использование: ForkJoinPool pool = new ForkJoinPool(); int result = pool.invoke(new FibonacciTask(10)); ``` Важно: для CPU-bound задач, но не для блокирующих операций (I/O).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы