Sobes.tech
Junior — Middle
88

Каким образом можно установить число потоков для выполнения параллельных операций в Stream API?

Сұралған компаниялар
IT OneIT One

AI-дан жауап

sobes.tech AI

В Java Stream API количество потоков, используемых для параллельных операций, контролируется через общий пул потоков ForkJoinPool.commonPool(). По умолчанию размер этого пула равен количеству доступных процессорных ядер.

Чтобы изменить число потоков для параллельного стрима, можно:

  1. Установить системное свойство java.util.concurrent.ForkJoinPool.common.parallelism при запуске JVM, например:
-Djava.util.concurrent.ForkJoinPool.common.parallelism=8
  1. Создать собственный ForkJoinPool с нужным уровнем параллелизма и запускать стрим внутри его контекста:
ForkJoinPool customThreadPool = new ForkJoinPool(8);
customThreadPool.submit(() -> {
    list.parallelStream().forEach(...);
}).get();

Таким образом, напрямую в Stream API нельзя задать число потоков, но можно управлять пулом потоков, на котором выполняются параллельные операции.