- java8 stream 병렬 처리
spring batch 에서 threadPoolExectuor로 처리를 하다가, thread 간의 경합 문제가 발생하여 java8 parallel stream으로 변경하였고,
stream 내부가 궁금하여 찾아보게 되었다.
jmx를 이용하여, thread monitoring한 결과 forkJoinPool이 내부적으로 생성되면서 최대 core수 - 1 만큼 thread가 생성되어 병렬로 처리된다.
thread 수를 조정할 수 있을까? 있다!!
private ForkJoinPool forkJoinPool = new ForkJoinPool(계수);
forkJoinPool.submit(() -> list.parallelStream().블라블라);
forkJoin 풀 방식?
- divide and conquer 방식
참조 : http://hamait.tistory.com/612