ForkJoinPool
是 Java 7 引入的一個用于并行計算任務的線程池。它使用工作竊取算法來優化任務執行。要設置 ForkJoinPool
的參數,您可以通過以下幾種方式之一:
int parallelism = Runtime.getRuntime().availableProcessors(); // 獲取處理器數量作為并行度
ForkJoinPool forkJoinPool = new ForkJoinPool(parallelism);
setParallelism
方法設置線程池大小:int parallelism = Runtime.getRuntime().availableProcessors(); // 獲取處理器數量作為并行度
ForkJoinPool forkJoinPool = new ForkJoinPool();
forkJoinPool.setParallelism(parallelism);
ForkJoinTask
的子類設置并行度:如果您正在使用 ForkJoinTask
的子類(如 RecursiveAction
或 RecursiveTask
),可以在創建任務時設置任務的并行度。例如,對于 RecursiveAction
:
int parallelism = Runtime.getRuntime().availableProcessors(); // 獲取處理器數量作為并行度
ForkJoinPool forkJoinPool = new ForkJoinPool(parallelism);
forkJoinPool.invoke(new MyRecursiveAction());
請注意,ForkJoinPool
的參數設置應根據您的應用程序需求和硬件資源進行調整。通常,將并行度設置為可用處理器的數量是一個合理的選擇。