Встречается на собеседованиях • сегодня
Что лежит в основе 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()...);
```

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы