Что такое параллельный stream в Java

«Что такое параллельный stream в Java» — вопрос из категории Java Core, который задают на 22% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Параллельный stream в Java позволяет обрабатывать элементы коллекции одновременно в нескольких потоках, используя ForkJoinPool. Основное отличие от sequential stream — автоматическое распараллеливание операций.

Пример:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.parallelStream()
                .mapToInt(Integer::intValue)
                .sum();

Особенности:

  1. Порядок обработки не гарантируется
  2. Требует потокобезопасных операций
  3. Может быть медленнее sequential для небольших коллекций из-за накладных расходов
  4. Использует общий ForkJoinPool (можно переопределить через custom pool)

Лучше применять для CPU-intensive операций над большими данными. Для IO-bound задач лучше использовать CompletableFuture.