본문으로 바로가기

[Java] Runnable과 Callable 차이점

category JAVA/기본 상식 2021. 2. 26. 16:10

동기적인 행위비동기적인 행위에 대한 이해 (#Callable과 Runnable의 차이)에 대해 알아봅시다.

* 차이점

1. Runnable은 Java 1.0부터 사용되었지만 Callable은 Java 1.5에서만 도입되었습니다.

- 즉 기존 Runnable을 그대로 놔두고, 기능을 확장하기 위해서 callable을 만들었다고 합니다.

 

2. Runnable이 지원하지 않는 유스 케이스를 처리합니다.

 

3. Callable은 call() 메소드를 구현해야하지만 Runnable은 run() 메소드를 구현해야합니다.

 

4. Callable은 값을 반환 할 수 있지만 Runnable은 반환 할 수 없습니다.

 

5. Callable은 검사 된 예외를 throw 할 수 있지만 Runnable은 예외를 throw 할 수 없습니다.

 

6. Callable은 ExecutorService#invokeXXX(Collection<? extends Callable<T>> tasks) 메소드와 함께 사용할 수 있지만 Runnable은 사용할 수 없습니다.

 

 

참조사이트 : https://codechacha.com/ko/java-callable-vs-runnable/