成为打工皇帝的先决条件是有一个好身体,下午爬云洞岩,登顶一下:

Callable:是一个函数式接口,定义在 java.util.concurrent 包中,包含一个 call() 方法,该方法可以返回结果,并且允许抛出异常。其主要用于表示一个有返回值的异步任务。

FutureTask 提供了接收 Callable 对象的构造器,通过将 Callable 对象包装进 FutureTask,可以让 Callable 任务被线程执行,并且利用 Future 接口的方法来管理任务的执行和获取结果。

在当前的 DemoController 代码里,Callable 是被 WebAsyncTask 使用,而非 FutureTask。WebAsyncTask 是 Spring 提供的用于处理异步请求的类,它内部会将 Callable 任务进行封装和管理,和 FutureTask 包装 Callable 任务的思路类似,都是为了执行异步任务并管理任务的状态和结果。