Cuncurrent
1 자바의 동시성
- 마이크로 서비스 애플리케이션은 여러 웹서비스에 접근해야한다.
- 이들 서비스의 응답을 기다리는 동안 연산 블록 CPU 클로 낭비 없어야한다.
- 애플리케이션 생산성 극대화를 위해 원격 서비스 데이터베이스 호출로 결과를 기다리는 스레드 블록하며 연산 자원 낭비 하는 일 피해야한다.
- 자바는 이런 환경에서 사용할 수 있는 도구로 Future, CompletableFuture를 제공한다.
- 최근 자바 9에는 리액티브 프로그래밍 개념을 따르는 Flow API가 추가되었다.
2. 자바의 동시성 진화
- Runnable, Thread
- Executor, ExecutorService, Callable
- 자바5: Future
- 자바8: CompletableFuture
- 자바9: Flow API