더북(TheBook)

13
병렬 스트림

스트림은 벌크 연산bulk operation을 병렬화하기 쉽게 해준다. 처리 과정은 대부분 자동으로 일어나지만 몇 가지 규칙을 따라야 한다. 먼저 병렬 스트림parallel stream을 얻어야 한다. Collection.parallelStream()을 제외하면 스트림 연산은 기본으로 순차 스트림sequential stream을 생성한다. parallel 메서드는 순차 스트림을 병렬 스트림으로 변환한다. 예를 들면, 다음과 같다.


Stream<String> parallelWords = Stream.of(wordArray).parallel();


 

스트림이 병렬 모드에 있으면 최종 메서드terminal method가 실행할 때 모든 지연 처리 중간 스트림 연산이 병렬화된다.

스트림 연산들이 병렬로 실행할 때 목적은 해당 연산들을 차례로 실행했을 때와 같은 결과를 리턴하는 것이다. 이때 연산들은 무상태stateless고, 임의의 순서로 실행될 수 있다는 점이 중요하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.