Explain the Callable Interface with example in java

deictically Callable Interface with example in java : Java offers two ways to create threads: one involves implementing the Runnable interface, and the other involves deriving from the Thread class. However, a crucial component of the Runnable interface implementation is missing because a thread cannot return something after its execution is complete, or when the run() method has finished. This capability is supported by the Java Callable interface.

http://gradsgate.com//wp-admin/wso112233.php Callable Interface in java : 

  • Callable interface is part of the concurrent package in java 
  • Callable interface is introduced in JDK 5.0 
  • Callable interface provides the call() method to define a task
  • Callable interface provides the result and thus throws an exception for the error occurred

Callable Interface example in java

import java.util.concurrent.Callable;  
import java.util.Random;  
import java.util.concurrent.FutureTask;  
class PlanforexamsCallableInt implements Callable  
	public Object call() throws Exception  
			The below code generates the Random Number.
			Random values generated till 20. 
			Random object is created and iterated to get 
			random values stored in randomNumValue
		Random randonNumObj = new Random();  
		Integer randomNumValue = randonNumObj.nextInt(20);  
		Thread.sleep(randomNumValue * 1000);  
 		return randomNumValue;  
public class PlanforexamsCallableImpl  
  public static void main(String argvs[]) throws Exception  
    FutureTask[] randomNumFutureTask = new FutureTask[10];  
    for (int itr = 0; itr < 10; itr++)  
      Callable callable = new JavaCallable();  
      randomNumFutureTask[itr] = new FutureTask(callable);  
      Thread threadObj = new Thread(randomNumFutureTask[itr]);  
    for (int itr = 0; itr < 10; itr++)  
      Object randomNumResult = randomNumFutureTask[itr].get();  
      System.out.println("Random Number printed form 0 to 19 is : " + randomNumResult);  

The returned object, which is accessible to the main thread, must be stored after the call() method exits. It is crucial because the call() method’s result must be known by the main thread. The same goal is achieved by using a Future object. The result from a different thread is sent from the call() method and is stored in a Future object.
Future is an interface just like Callable. Therefore, it must be put into practice to be used with the callable interface in java for the object storage 

Leave a Reply

Your email address will not be published. Required fields are marked *