Difference between Runnable and Callable interface in Java?
Runnable and Callable interface both are designed to represent task, which can be executed by any thread. Both does same task for the programmer with few difference between each other. In this tutorial we will see about difference between Runnable and Callable interface difference and when we need to use Runnable and Callable interface in our application.
- Runnable interface introduced in JDK 1.0, whereas Callable interface introduced in Java 5 release along with other major changes e.g. Generics, Enum, Static imports and variable argument method.
- Since both are interface when we implement these interface we need to implement run() method from Runnable interface and call() method from Callable interface.
- run() method didn't not return any value, whereas call() method returns Object where Callable interface is a generic parameterized interface and Type of value is provided at implementation.
- Callable interface can throw checked exception because it's call method throws Exception where as run() method has its limitation.
Basically if our application needs to return any value from executor method then we need to for Callable interface than Runnable interface.
Bu keeping all these differences and usage between Runnalbe and Callable interface programmer need to be in a position to decide which interface he needs to choose for his application.
As this is one of the important interview question asked in most of the interviews followed by multi-threading question and mostly asked in Banking domain Java interviews.