16.1 Future의 단순 활용
- 자바 5부터는 미래의 어느 시점에 결과를 얻는 모델에 활용할 수 있도록 Future 인터페이스를 제공하고 있다.
- 결과가 준비되었다면 즉시 결과를 반환하지만 결과가 준비되지 않았다면 작업이 완료될때 까지 우리 스레드를 블록시킨다.
- get 메서드를 오버로드해서 우리 스레드가 대기할 최대 타임아웃 시간을 설정하는 것이 좋다.
- 비동기 API에서는 메서드가 즉시 반환되며 끝내지 못한 나머지 작업을 호출자 스레드와 동기적으로 실행될 수 있도록 다른 스레드 에 할당한다.
16.2 비동기 APU 구현
- Future는 결과값의 핸들일 뿐이며 계산이 완료되면 get 메서드로 결과를 얻을 수 있다.
- 가격 정보가 있으면 Future에서 가격 정보를 읽고, 가격정보가 없으면 가격 정보를 받을때까지 블록한다.
- 클라이언트는 타임아웃값을 받는 get 메서드의 오버로드 버전을 만들어 이 문제를 해결할 수 있다.
16.4 비동기 작업 파이프라인 만들기
- 병렬 스트림에서는 스트림이 사용하는 스레드 풀의 크기가 고정되어 있어서 상점 수가 늘어났을 때처럼 검색 대상이 확장되었을 때 유연하게 대응할 수 없다는 사실도 확인했다.
'책 > 모던 자바 인 액션' 카테고리의 다른 글
18장 함수형 관점으로 생각하기 (0) | 2024.06.26 |
---|---|
15장 CompletableFuture와 리액티브 프로그래밍 컨셉의 기초 (0) | 2024.06.23 |
13장 디폴트 메서드 (0) | 2024.06.20 |
12장 새로운 날짜와 시간 API (0) | 2024.06.19 |
11장 null 대신 Optional 클래스 (0) | 2024.06.18 |