ForkJoinPool中递归任务和递归动作的区别
Difference between recursive task and recursive action in ForkJoinPool
我们可以向 forkJoinPool
提交两种类型的任务。一个是 RecursiveAction
,另一个是 RecursiveTask
。
两者有什么区别?
除了 RecursiveTask
return 是一个结果而 RecursiveAction
没有 return 值外,它们是相似的。
来自各自 Javadoc 的第一行:
- [
RecursiveTask
is] A recursive result-bearing ForkJoinTask.
- [
RecursiveAction
is] A recursive resultless ForkJoinTask.
虽然从技术上讲,RecursiveAction
确实 return 一个值,但它总是 null
,因为它是一个 ForkJoinTask<Void>
,这是 Void
.
的唯一可能值
我们可以向 forkJoinPool
提交两种类型的任务。一个是 RecursiveAction
,另一个是 RecursiveTask
。
两者有什么区别?
除了 RecursiveTask
return 是一个结果而 RecursiveAction
没有 return 值外,它们是相似的。
来自各自 Javadoc 的第一行:
- [
RecursiveTask
is] A recursive result-bearing ForkJoinTask.- [
RecursiveAction
is] A recursive resultless ForkJoinTask.
虽然从技术上讲,RecursiveAction
确实 return 一个值,但它总是 null
,因为它是一个 ForkJoinTask<Void>
,这是 Void
.