FutureTask class is the base concrete class that implements Future interface. We use it with callable implementation and executors for asynchronous processing. FutureTask provide implementation methods to check the state of the task and return the value to the calling program once it’s processing is finished. It comes handy when you want to override some of the implementation methods of the Future interface.