Мы можем отправить два типа задач на forkJoinPool.один - RecursiveAction, а другой - RecursiveTask.
forkJoinPool
RecursiveAction
RecursiveTask
В чем разница между ними обоими?
Из первых строк соответствующих Javadoc:
[RecursiveTask is] Рекурсивный результат ForkJoinTask. [RecursiveAction is] Рекурсивный безрезультатный ForkJoinTask.
Хотя технически RecursiveAction действительно возвращает значение, просто всегда null, потому что это ForkJoinTask<Void>, и это единственно возможное значение Void.
null
ForkJoinTask<Void>
Void
Они похожи, за исключением того, что RecursiveTask возвращает результат, в то время как RecursiveAction не имеет возвращаемого значения.