资料内容:
一、新增方式1:实现Callable接口
(1)介绍
【Callable接口】
@FunctionalInterface
public interface Callable<V> {
/**
* Computes a result, or throws an exception if unable to do so.
*
* @return computed result
* @throws Exception if unable to compute a result
*/
V call() throws Exception;
}
<>是泛型的意思,V决定了call()方法返回值的类型。
与使用 Runnable 相比, Callable 功能更强大些
相比 run() 方法,可以有返回值。
方法可以抛出异常。
支持泛型的返回值(需要借助FutureTask类,获取返回结果)。
Future 接口(了解)
可以对具体Runnable、Callable任务的执行结果进行取消、查询是否完成、获取结
果等。
FutureTask是Futrue接口的唯一的实现类。
FutureTask 同时实现了Runnable, Future接口。它既可以作为Runnable被线程执
行,又可以作为Future得到Callable的返回值。
缺点:在获取分线程执行结果的时候,当前线程(或是主线程)受阻塞,效率较低。