general java
Java8 - parallelStream() cpu 개수
'김용환'
2015. 10. 13. 16:39
아래 코드를 실행하면 몇 개의 cpu가 동작하는지 확인해봤다.
List<String> deletedCid = allIds.parallelStream().filter(this::isDeleted).collect(Collectors.toList());
cpu 개수만큼 thread가 만들어진다.
jstack 으로 확인해보니.특히 Pool은 ForjJoinPool을 사용한다.
cpu가 8개이면, 아래와 같이 생성한다.
"ForkJoinPool.commonPool-worker-1"
...
"ForkJoinPool.commonPool-worker-8"
만약 thread 개수를 늘리고 싶다면, java.util.concurrent.ForkJoinPool.common.parallelism 값으로 조절한다.
-Djava.util.concurrent.ForkJoinPool.common.parallelism=16