0

我正在寻找 GPars 功能,它允许在并行子任务集中的顺序执行部分中分离大任务。

即迭代K的数组大小,执行并行任务块的顺序分配,每个块的大小为 threadCount

换句话说,不要在第一次迭代数组并一次提交所有任务,而是在前一个块准备好时使用即分页顺序进行分配(防止OOM)。

类似于下面的代码,但首先不是列出页面并提交任务,而是必须按顺序处理页面。

myHugeList.getNextPage().each { withPool(threadCount) { Closure.callAsync().get() } }

谢谢,叶菲姆

4

1 回答 1

0

您可能正在寻找以下方面的内容:

withPool(numOfThreads) { for(entriesInPage in myHugeList.splitIntoPages) { resultPages << entriesInPage.collectParallel(myClosure) } } 缺点是每次迭代都等待前一个迭代完成,可能会使一些线程未得到充分利用。

一种选择可能是一组参与者从调度程序中提取任务,该调度程序管理 myHugeList。

于 2012-07-06T07:39:25.960 回答