Since use ExecutorService can submit a Callable task and return a Future, why need to use FutureTask to wrap
ExecutorService
submit
Callable
Future
FutureTask
You would only need to use FutureTask if you want to change its behaviour or access its Callable later. For 99% of uses, just use Callable and Future.