資料內(nèi)容:
一、新增方式1:實(shí)現(xiàn)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()方法返回值的類(lèi)型。
與使用 Runnable 相比, Callable 功能更強(qiáng)大些
相比 run() 方法,可以有返回值。
方法可以?huà)伋霎惓!?br />
支持泛型的返回值(需要借助FutureTask類(lèi),獲取返回結(jié)果)。
Future 接口(了解)
可以對(duì)具體Runnable、Callable任務(wù)的執(zhí)行結(jié)果進(jìn)行取消、查詢(xún)是否完成、獲取結(jié)
果等。
FutureTask是Futrue接口的唯一的實(shí)現(xiàn)類(lèi)。
FutureTask 同時(shí)實(shí)現(xiàn)了Runnable, Future接口。它既可以作為Runnable被線(xiàn)程執(zhí)
行,又可以作為Future得到Callable的返回值。
缺點(diǎn):在獲取分線(xiàn)程執(zhí)行結(jié)果的時(shí)候,當(dāng)前線(xiàn)程(或是主線(xiàn)程)受阻塞,效率較低。