Future Task类的作用:
FutureTask是为了弥补Thread的不足而设计的,它可以让程序员准确地知道线程什么时候执行完成并获得到线程执行完成后返回的结果(如果有需要)。FutureTask是一种可以取消的异步的计算任务。它的计算是通过Callable实现的,它等价于可以携带结果的Runnable,并且有三个状态:等待、运行和完成。完成包括所有计算以任意的方式结束,包括正常结束、取消和异常。
实现的接口:
Future:封装并行调用的类,可以取消任务的执行,确定执行是否已成功完成或出错,以及其他操作。
Callable:用于实现并行执行的接口。它与 Runnable 接口非常相似,但是它不返回任何值,而 Callable 必须在执行结束时返回一个值。
Callable接口和Runnable接口的不同:
相同点:
1.Callable和Runnable都是接口
2.Callable和Runnable都可以应用于Executors
不同点:
1.Callable要实现call方法,Runnable要实现run方法
2.call方法可以返回值,run方法不能
3.call方法可以抛出checked exception,run方法不能