자바 8에 도입된 기능으로 데이터를 함수형으로 다루기 위한 추상화된 데이터 처리 방식
사전적의미와도 비슷하다
스트림이란 간단히 말해서 데이터의 흐름이다
어떤 데이터를 우리가 원하는 데이터로 만들기위한 흐름 정도로 생각하면 될거같다
![]()
우리가 원하는 결과를 얻기 위해 중간에 filter, map 연산을하고 결과적으로 collect 연산을 해서 우리가 원하는 결과를 얻게 된다
스트림을 사용할 때 장점중 하나는 병렬처리가 쉽다는 것이다.
내부적으로 fork & join 프레임워크로 자동으로 연산을 병렬로 처리한다.
병렬 스트림은 내부적으로 ForkJoinPool을 사용하는데, ForkJoinPool은 프로세서 수(Runtion.getRuntime().availableProcessors())의 스레드를 가진다.
사용예시


병렬처리로 순서가 일정하지 않다
병렬화할 수 있는 작업을 재귀적으로 서브 데이터로 분할한 다음 각각의 결과를 합쳐 전체 결과를 만들도록 설계되었다.
작업을 분할하고 수행한 후 합친다. (분할정복 알고리즘)


