Async
비동기 Async
- @EnableAsync
- 비동기 기능을 활성화
- CompletableFuture
-
Future
서로 다른 실행시간을 가지는 Future 들을 조합해서 계산, 다른 결과와 같이 계산 등 복잡한 로직을 다루기 힘듦 -
CompletionStage
계산의 완료는 단일 단계의 완료 뿐만 아니라 다른 여러 단계 혹은 다른 여러 단계 중의 하나로 이어질 수 있음도 포함 또한 각 단계에서 발생한 에러 관리/전달 -
Future 와 CompletionStage 를 구현한 클래스
-
- ThreadPoolTaskExecutor
- setMaxPoolSize(100) : 쓰레드 풀의 최대 사이즈
- setCorePoolSize(10) : 동시에 실행시킬 쓰레드의 개수
- setQueueCapacity(10) : 쓰레드 풀 큐의 사이즈 corePoolSize 개수를 넘어서는 task 진입 시 queue에 해당 task들 누적 최대로 maxPoolSize 개수 만큼 가능
- setThreadNamePrefix(“Async-“) : Prefix 설정
- 실행도
core 10개 사용 > queue 10개 누적 > core 10개 사용 > queue 10개 누적 반복 > 100개 Max Size