forkjoinpool

    -1熱度

    1回答

    我嘗試處理使用Java中的一個ForkJoinPool的圖像。我使用流在圖像上執行一些自定義操作。我試圖用ForkJoinPool爲getRGB和setRGB方法。如何在getRGB方法上實現並行性? @Override public int[] getRGB(int xStart, int yStart, int w, int h, int[] rgbArray,int offset,

    4熱度

    2回答

    從Java文檔, 一個ForkJoinPool與其他類型的ExecutorService的不同之處主要憑藉用人偷盜的:所有的線程池中試圖找到並執行其他創建子任務活動任務(如果不存在,最終阻止等待工作)。 當大多數任務產生其他子任務時(如同大多數ForkJoinTasks一樣),這可以實現高效處理。在構造函數中將asyncMode設置爲true時,ForkJoinPools可能也適合用於永不連接的事

    1熱度

    1回答

    我正在嘗試Java ForkJoin框架並編寫了一個處理大型數據列表的程序。 衆所周知,字段閾值總是在ForkJoinTask中設置,以指出數據列表分區的最小數量。 問題是,閾值有多大或多少會使性能更好,或者是靈活的,只與CPU或線程支持的核心數量相關聯? 在並行計算框架(如Forkjointask)中是否有閾值的最佳實踐?

    2熱度

    4回答

    我正在使用具有不同運行時間的任務的多線程應用程序。當一個線程完成時,是否有辦法從一個仍在運行的線程中接管一些任務? 這裏是一個例子。我用5個線程啓動了我的程序,每個程序都有50個任務。當最快的運行線程完成時,另一個線程仍然有40個任務要完成。我怎樣才能讓完成的線程從另一個線程執行20個任務,因此每個線程都繼續工作20個,而不是等待正在運行的線程完成剩下的40個任務?

    -1熱度

    2回答

    夥計 我有以下代碼在我的搜尋器上添加訪問過的鏈接。 提取鏈接後,我有一個循環循環通過每個人href標籤。 當我訪問了一個鏈接後,打開它,我將URL添加到上面定義的訪問鏈接集合變量中。 private final Collection<String> urlForntier = Collections.synchronizedSet(new HashSet<String>()); 履帶實現mul

    2熱度

    1回答

    我有一個錯誤,在生產中出現了兩次,其中一個fork/join池停止工作,即使它有工作要做,並且正在添加更多工作。 這是我到目前爲止解釋爲什麼要完成的任務隊列已滿並且任務結果流停止的結論。我有線程轉儲,其中我的任務生產者線程正在等待fork/join提交完成,但沒有任何ForkJoinPool工作線程正在執行任何操作。 "calc-scheduling-pool-4-thread-2" #65 pr

    5熱度

    2回答

    我有一個重要的數據集,並且想要調用緩慢而乾淨的方法,並且比第一個調用結果有副作用的快速方法要快。我對中間結果不感興趣,所以我不想收集它們。 明顯的解決方案是創建並行流,進行慢速呼叫,再次使流順序,並進行快速調用。問題是,在單線程中執行的所有代碼都沒有實際的並行性。 示例代碼: @Test public void testParallelStream() throws ExecutionExcep

    8熱度

    1回答

    我想弄清楚如何在Java 8並行流中複製ThreadLocal值。 因此,如果我們可以這樣考慮: public class ThreadLocalTest { public static void main(String[] args) { ThreadContext.set("MAIN"); System.out.printf("Main Thread:

    -1熱度

    1回答

    GParsPool.withPool和GParsPool.withExistingPool有什麼區別?我不明白文檔中解釋了什麼。

    3熱度

    1回答

    我正在閱讀Java ForkJoin框架。在ForkJoinTask(例如RecursiveTask)的實施中,如果不直接呼叫invoke()還有什麼額外的好處,但是要實例化ForkJoinPool並呼叫pool.invoke(task)?當我們將這兩種方法稱爲invoke時究竟發生了什麼? 從源頭上看,如果recursiveTask.invoke被調用,它將調用它的exec並最終以管理的線程池方