Runnable과 Callable

반환값과 검사 예외가 필요한지가 작업 인터페이스를 결정한다.

Runnable

run은 값을 반환하지 않는다.

명령과 부수 효과

Callable<T>

call이 T를 반환한다.

계산 결과

submit Runnable

Future<?>로 완료를 확인한다.

실패 관찰 필요

submit Callable

Future<T>로 타입 결과를 받는다.

수집 책임
공통점둘 다 실행 시점과 실행 스레드를 Executor가 정한다.

핵심: 결과를 사용하지 않아도 실패를 어디에서 관찰할지 정해야 한다.