Runnable 인터페이스

단순히 실행동작만 담고 있는 인터페이스. 결과값 리턴도 불가능 하고 예외 던지기도 불가능함

Callable 인터페이스

결과값을 돌려받을 수 있고 Exception도 발생시킬수 있는 인터페이스

Future

특정작업의 완료여부와 취소여부 등의 정보를 제공하는 클래스

Future.get()

메서드작업이 완료되었다면, 즉시 결과 리턴 또는 실행 중 예외 발생하였다면 warping된 ExecutionException이 발생한다.

작업이 실행/대기 상태라면 완료될때 까지 블러킹한다. 타임아웃을 지정하여 시간제한을 둘 수 있다. 지정된 시간이 지나도록 작업이 완료되지 않는다면 TimeoutException을 발생시킨다.

ExecutorService.invokeAll로 전체작업 List<Future<?>> 컬렉션으로 받아올 수 있음