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