더북(TheBook)

연습문제

 

01 “2.1 반복에서 스트림 연산으로” 절의 for 루프를 병렬 버전으로 작성하라. 먼저 프로세서의 개수를 얻는다. 다수의 스레드를 생성해 각 스레드가 리스트의 각 세그먼트를 대상으로 작업하게 하고, 결과들이 나오면 합산한다(여러분은 스레드들이 단일 카운터를 업데이트하는 상황을 원하지 않을 것이다. 그 이유는 무엇인가?).

02 처음 5개 긴 단어를 요청했을 때 일단 긴 단어를 5번째 발견하고 나면 filter 메서드를 호출하지 않음을 확인하라. 간단하게 각 메서드 호출을 기록하라.

03 stream 대신 parallelStream을 이용해 긴 단어 개수를 셀 때 차이를 측정하라. 각 호출 이전과 이후에 System.currentTimeMillis를 호출하고 차이를 출력한다. 빠른 컴퓨터를 보유하고 있다면 전쟁과 평화 War and Peace처럼 더 큰 문서로 바꿔서 측정한다.

04 int[] values = { 1, 4, 9, 16 } 배열이 있다고 하자. Stream.of(values)의 결과는 무엇인가? int 스트림은 어떻게 얻을 수 있는가?

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