多線程 -- Future & Callable
Callable
Callable 和 Runnable作用類似, 都是為了讓其實(shí)例給另一個(gè)Thread去執(zhí)行,提交給線程池去執(zhí)行;
但是Runnable無返回值并且無法拋出異常, 而Callable可以返回結(jié)果;
Future
Feature 就是上面 Callable 提交給線程池后, 異步計(jì)算的結(jié)果;
提供任務(wù)是否完成, 取消任務(wù), 獲取任務(wù)結(jié)果的接口;
使用get
方法獲取結(jié)果, 大部分實(shí)現(xiàn)類, 實(shí)現(xiàn)了獲取異步計(jì)算結(jié)果前,阻塞當(dāng)前線程; 因而該功能可以用于當(dāng)前線程去同步獲取異步計(jì)算結(jié)果;
FutureTask
該類實(shí)現(xiàn)了 Future 和 Runnable 接口;
異步任務(wù)可以調(diào)用 set
, setException
方法, 將計(jì)算結(jié)果返回;