Future 결과의 네 갈래

get 호출은 성공값 외에도 취소와 두 종류의 대기를 표현한다.

1

대기 중

isDone false

호출자는 기다리거나 다른 일을 한다.

2

정상 완료

값 사용 가능

get이 계산 결과를 반환한다.

3

실패 완료

ExecutionException

cause를 업무 오류로 분류한다.

4

취소 완료

CancellationException

결과가 만들어지지 않았음을 알린다.

핵심: InterruptedException은 결과 상태가 아니라 기다리던 호출자의 취소 신호다.