ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • day30 - JAVA (자바, 스트림, 병렬 처리)
    KIC/JAVA 2021. 7. 27. 00:04
    반응형

    [리덕션]

    -> 대량의 데이털르 가공해 축소하는 것

    -> 데이터의 합계, 평균값, 카운팅 최대값, 최소값

    -> 컬렉션의 요소를 리덕션의 결과물로 바로 집계할 수 없을 경우에는 집계하기 좋도록 필터링, 매핑, 정렬, 그룹핑 등의 중간 처리 과정이 필요하다.(스트림 파이프 라인의 필요성)

     

     

    [파이프 라인]

    -> 여러개의 스트림이 연결되어 있는 구조

    -> 파이프라인에서 최종 처리를 제외하고는 모두 중간 처리 스트림

     

     

    [중간 처리와 최종 처리]

    -> Stream 인터페이스는 필터링, 매핑, 정렬 등의 많은 중간 처리 메소드를 가진다.

    -> 스트림에서 다시 중간 처리 메소드를 호출해 파이프 라인을 형성한다

     

     

     

    [스트링 타입이 제공하는 최종 처리 메서드]

     

     

    [루핑(loooping)]

    -> 요소 전체를 반복하는 것을 루핑이라고 한다.

     

    [peak]

    -> 중간 처리 메서드

    -> 중간 처리 단계에서 전체 요소를 루핑하며 추가 작업 하기 위해 사용

    -> 최정 처리 메소드가 실행되지 않으면 지연된다.

    -> 반드시 최종 처리 메소드가 호출되어야 동작한다.

     

    [forEach()]

    -> 최종 처리 메서드

    -> 파이프라인 마지막에 루핑하여 요소를 하나씩 처리한다.

    -> 요소를 소비하는 최종 처리 메소드

    -> sum()과 같은 다른 최종 메소드 호출이 불가능 하다.

     

     

     

     

    [커스텀 집게를 위한 메소드]

    -> sum(), average(), count(), max(), min() 사용

    -> reduce() 메서드 사용

     

     

     

     

     

    [병렬 처리]

    -> 머리 코어 CPU 환경에서 쓰인다.

    -> 하나의 작업을 분할해서 각각의 코어가 병렬적으로 처리하는 것

    -> 병렬 처리의 목적은 작업 처리 시간을 줄이기 위한 것이다.

    -> 자바 8 부터 요소를 병렬 처리할 수 있도록 하기 위해 병렬 스트림을 제공한다.

     

    [동시성과 병렬성]

    -> 동시성: 멀티 작업을 위해 멀티 스레드가 번갈아 가며 실행하는 성질

     

    -> 병렬성: 멀티 작업을 위해 멀티 코어를 이용해서 동시에 실행하는 성질

     

     

    300x250

    댓글

Designed by Tistory.