forkjoinpool

    2熱度

    2回答

    我有一個家庭作業,需要在Java中使用數獨求解器的順序和並行版本(使用ForkJoin框架,並行版本爲)。 我寫了順序的一個,它工作正常。算法的思想是一個簡單的回溯練習:對於每個單元格(從表格的左上角開始)尚未填充,填充它(依次,並一次一個)與所有合法候選人(從1到9)直到你到達矩陣的最後(第9列第9列)。如果您已達到最終結果,則增加解決方案編號。 我認爲實施並行版本只是爲每個有效的候選人找到一個

    1熱度

    1回答

    如果我們使用ForkJoinPool框架的RecursiveAction,我們是否需要調用join()? 例如爲: left.fork() right.fork() 或 left.fork() right.fork() left.join() right.join() 如果左右兩個更新一個共同的數據結構,有沒有理由罵加入了左右兩部分? 由於提前, Burcak

    6熱度

    1回答

    假設我有一個ForkJoinPool設置與並行度n的程度,那我叫並行計算是這樣的: workpool.submit( () -> { objects.values().parallelStream().forEach(obj -> { obj.foo(); }); }); 我這樣做是爲了確保線程催生有創建在工作

    0熱度

    2回答

    我有一個練習的問題。我需要使用fork/join並行機制來找到給定數獨的所有解決方案。我做了一個算法,但它似乎不起作用。它在某個時候停下來,我無法弄清楚爲什麼。 下面的代碼: private static int counter; private Cella[][] sudoku; private int i; private int j; private int theCounter =

    3熱度

    2回答

    閱讀ForkJoinPool後,我嘗試了一個實驗來測試速度有多快實際上ForkJoinPool是,相比於普通的遞歸時。 我計算出的文件數的文件夾中遞歸,和我surprize,普通遞歸執行的方式優於ForkJoinPool 這裏是我的代碼。 遞歸任務 class DirectoryTask extends RecursiveTask<Long> { private Directory d

    1熱度

    2回答

    我想用叉子來實現雙調排序連接java.So的模型繼承人分揀機 import java.util.concurrent.RecursiveAction; public class BitonicSortTask extends RecursiveAction { private final int array[]; private final int low; p

    0熱度

    1回答

    我有一個應用程序可以抓取大約六千個URL。爲了最大限度地減少這項工作,我創建了一個RecursiveTask,它使用所有要爬網的URL的ConcurrentLinkedQueue。它最多可以關閉50個,如果這個Que是空的,它會直接抓取它,但是如果沒有,它會首先創建一個新的自己的實例並將其分叉,之後它會抓取50的子集,然後它將加入分叉的任務。 現在出現我的問題,直到每個線程同時工作了他的50個全部

    3熱度

    2回答

    我有象下面這樣的Java代碼: Stream<String> stream = getStreamFromSomewhere() ForkJoinPool pool = new ForkJoinPool(32); pool.submit(() -> stream.parallel() .filter(condition) .forEach(x -> re

    1熱度

    2回答

    我正在研究一個庫,它將採用一個對象DataRequest作爲輸入參數並基於該對象構建一個URL,然後調用我們的應用程序服務器使用apache http客戶端,然後將響應返回給使用我們庫的客戶。有些客戶會撥打executeSync方法獲得相同的功能,一些客戶會撥打我們的executeAsync方法來獲取數據。 executeSync() - 等待,直到我有一個結果,返回結果。 executeAsyn

    1熱度

    1回答

    對於我的工作,我必須開發一個解析非常大的文本文件(〜6800 kb)的小型Java應用程序,所以我正在嘗試優化它以創建更進一步的流程。用equalto(=)分割線作爲第一個分叉任務,並用逗號分割並使用第二個分叉任務進行一些計算。這將導致對單個應用程序執行多個分叉任務的良好性能。 1)首先fork和join過程: @Override protected Map < String, String >