위 그림에서 보는 것처럼 사실 execute
method는 Executor
interface의 method이며, ExecutorService
는 Executor
를 상속한 관계입니다. 두 method의 차이점은 아래와 같습니다.
Executor
interface의 methodRunnable
만 받음ExecutorService
interface의 methodRunnable
또는 Callable
을 받음Future
를 returnexecute
method에서는 return하는 값이 없으므로 동작 결과에 대해 더 이상 알 방법이 없는데요. submit
method에서는 Future
를 return하기 때문에 Future
객체에 접근하여 비동기 동작 결과에 대해서 접근이 가능합니다.
참고로 Future
의 get
method를 통해 결과값을 얻을 수 있지만, 결과값을 얻을 수 있는 상태가 될 때까지 block되는 것을 유의해야합니다.
참고자료 및 그림 출처: https://www.geeksforgeeks.org/difference-between-executorservice-execute-and-submit-method-in-java/