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