ForkJoinTask 實(shí)現(xiàn)了 Future 接口,說明它也是一個(gè)可取消的異步運(yùn)算任務(wù),實(shí)際上ForkJoinTask 是 Future 的輕量級(jí)實(shí)現(xiàn),主要用在純粹是計(jì)算的函數(shù)式任務(wù)或者操作完全獨(dú)立的對(duì)象計(jì)算任務(wù)。
fork 是主運(yùn)行方法,用于異步執(zhí)行;而 join 方法在任務(wù)結(jié)果計(jì)算完畢之后才會(huì)運(yùn)行,用來合并或返回計(jì)算結(jié)果。
其內(nèi)部類都比較簡(jiǎn)單,ExceptionNode 是用于存儲(chǔ)任務(wù)執(zhí)行期間的異常信息的單向鏈表;其余四個(gè)類是為 Runnable/Callable 任務(wù)提供的適配器類,用于把 Runnable/Callable 轉(zhuǎn)化為 ForkJoinTask 類型的任務(wù)(因?yàn)?ForkJoinPool 只可以運(yùn)行 ForkJoinTask 類型的任務(wù))。