아래 코드를 실행하면 몇 개의 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


Posted by '김용환'
,