We can submit two types of tasks to forkJoinPool
. one is RecursiveAction
and other is RecursiveTask
.
What is the difference between both of them?
From the first lines of their respective Javadocs:
- [
RecursiveTask
is] A recursive result-bearing ForkJoinTask.- [
RecursiveAction
is] A recursive resultless ForkJoinTask.
Although technically, RecursiveAction
does return a value, it's just always null
, because it's a ForkJoinTask<Void>
, and that's the only possible value of Void
.