티스토리 뷰

병렬 스트림 ( Parellel Stream )

스트림(Stream) 요소를 특정 단위(Chunk)로 작업을 분할하여 처리 할 수 있게 하는 방법이다. 

 

 

특징
  • 병렬 처리는 사용 방법에 따라 성능에 악영향을 가져오기도 한다. 대표적으로 잦은 박싱•언박싱, 데이터의 순서가 중요한 경우 또는 소량에 데이터를 처리할 때는 적합하지 않다.
    • 올바른 자료구조를 사용해야 한다. ( ArrayList 🅾️ LikedList ❌ )
    • 요소의 순서가 중요하다면 순차 스트림이 병렬 스트림에 비해 성능이 좋을 수 있다.
    • 박싱•언박싱 과정에 오버헤드가 상당하기 때문테 특화 스트림(IntStream 등)을 사용하는 것이 좋다.
  • 내부적으로  ForkJoinPool  사용한다.

 

사용 방법

  • parallelStream 을 통해 병렬 스트림으로 변경하여 작업을 진행할 수 있다.

  • 특화 스트림 (LongStream, IntStream 등)을 사용하여 박싱•언박싱으로 낭비되는 비용을 막을 수 있다.

참조

- 모던 자바 인 액션

댓글