RecursiveAction线程池大小

时间:2014-09-14 12:03:22

标签: java concurrency fork-join forkjoinpool

我刚刚看到了Java 7 RecursiveAction.invokeAll()的用法,我想知道:

任务线程池的大小是多少? (或确定它的算法..)

如果我有很多任务(比如100个任务),我应该使用它吗?

1 个答案:

答案 0 :(得分:1)

线程池的大小是你设置的大小,也就是你拥有的核心数量:

  

公共ForkJoinPool()

     

使用默认线程工厂,无ForkJoinPool和非异步LIFO处理模式,创建并行度等于Runtime.availableProcessors()的{​​{1}}。

或某些具体数字:

  

public ForkJoinPool(int parallelism)

     

使用指示的并行度级别,默认线程工厂,无UncaughtExceptionHandler和非异步LIFO处理模式创建ForkJoinPool

请阅读the JavaDoc了解详情。

递归动作的工作方式是它产生自身的多个版本。您始终以 1 开头。所产生的行动数量有点无关紧要,数百或数千应该没有问题 - 只要他们没有“堆积”并且#34;