2012-07-05 32 views
0

我正在尋找GPars功能,該功能允許分開順序執行的部分parallized子任務中的大任務。GPars處理龐大的列表,在其部分上執行修復大小並行化

即迭代的ķ數組大小,做各具有THREADCOUNT大小並行任務塊的序貫分配。

換句話說,不要在第一次迭代數組並且一次提交所有任務,而是在前一個塊準備就緒(防止OOM)時按順序執行分配,即使用分頁。

類似下面的代碼,但不是首先列出頁面和提交任務,而是必須按順序處理頁面。

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

感謝, Yefym

回答

0

你可能會尋找這些方針的東西:

withPool(numOfThreads){ 爲(entriesInPage在myHugeList.splitIntoPages){ resultPages < < entriesInPage.collectParallel(myClosure) } } 缺點是每次迭代等待前一個完成,可能會留下一些線程未充分利用。

其中一個替代方案可能是一組演員從調度員中提取任務,該調度員管理myHugeList。