본문 바로가기

아는 만큼 보인다/Concurrency

Thread pool 에서 결과(Future) 받기

1. 끝나기 전에 받기

- 하나씩 받기

    • future = executorService.submit(...job...);
    • future = completionService.submit(...job...);


2. 끝날 때 까지 대기하여 받기

- 모두 끝난 후에 한꺼번에 다 받기

    • futureList = executorService.invokeAll(... job list ...);


- 제일 일찍 끝난 결과 하나만 받기

    • future = executorService.invokeAny(... job list ...);


- 먼저 끝나는 순서대로 하나씩 모두 받기

for (...) {

future = completionService.take();

}