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

Что лежит в основе Parallel Stream

Parallel Stream в Java основан на ForkJoinPool из java.util.concurrent, который использует work-stealing алгоритм для распределения задач между потоками. По умолчанию количество потоков равно количеству ядер процессора (Runtime.getRuntime().availableProcessors()). Пример: ```java List numbers = Arrays.asList(1, 2, 3, 4, 5); int sum = numbers.parallelStream() .mapToInt(Integer::intValue) .sum(); ``` **Нюансы:** 1. Порядок обработки элементов не гарантируется. 2. Некоторые операции (например, `forEachOrdered`) сохраняют порядок, но снижают производительность. 3. Не все задачи выигрывают от параллелизации (накладные расходы на разделение/объединение данных). 4. Избегайте изменяемых состояний (shared mutable state) — это приведёт к race condition. Для кастомного пула потоков используйте: ```java ForkJoinPool customPool = new ForkJoinPool(4); customPool.submit(() -> list.parallelStream()...); ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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