자바 8 이전→ 나머지 코어 활용하려면 스레드 이용.

하지만 스레드 사용 → 관리 어렵고 많은 문제 발생

→ 병렬 실행 환경을 쉽게 관리 / 에러가 덜 발생하는 방향으로 진화하려 노력함.

스트림을 이용하면 멀티 코어 CPU 활용하는 것 보다 비용이 훨씬 비싼 키워드 synchronized 사용하지 않아도 된다.

함수형 프로그래밍

자바는 어떻게 대중적인 프로그래밍 언어로 성장했는가?

자바 8에 추가된 프로그래밍 개념

  1. 스트림 처리

스트림 : 한번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모임.

unix 명령어에서 파이프( | ) 사용해서 명령을 연결할 수 있다. 이렇게 Stream API는 파이프라인 만드는 데 필요한 많은 메서드를 제공한다.

Stream API의 핵심 : 기존에는 한 번에 한 항목을 처리 → DB 쿼리 같이 고수준으로 추상화 해서 일련의 스트림으로 만들어 처리 할 수 있다는 것.

또한, 스트림 파이프라인을 이용해 입력 부분을 여러 CPU 코어에 쉽게 할당할 수 있다는 부가적인 이득.

스레드 사용하지 않으면서도 공짜로 병렬성 얻을 수 있다.