Task Parallelism
https://www.coursera.org/learn/parallel-programming-in-java/
Task Creation and Termination (Async, Finish)
以数组求和作为例子
为了求得数组的和,可以将数组分为前后两个部分。两部分的求和可以并行执行,但是在求总和之前要保证两个子任务已经完成。
1 | finish { |
async <stmt1>
:父任务创建子任务执行<stmt1>
,并且是并行于父任务的其余部分执行
上面的伪代码中,async SUM1;
创建子任务SUM1,和SUM2并行执行
finish <stmt2>
:父任务执行<stmt2>
,并且等待<stmt2>以及其中创建的异步任务
完成
上例中,父任务等待SUM1和SUM2完成,才能执行SUM
Tasks in Java’s Fork/Join Framework
数组求和的分治写法