并行Stream最多可以使用多少个进程
What is the maximum number of processes that can be used in parallel Stream
我知道我们可以用-Djava.util.concurrent.ForkJoinPool.common.parallelism来设置并行度,但是有没有上限呢?
通过查看 ForkJoinPool
的源代码,我找到了
的定义
MAX_CAP = 0x7fff; // max #workers - 1
这是在使用构造函数时强制执行的 ForkJoinPool(int)
,方法是在您尝试指定更多时抛出异常。但是,当使用系统 属性、java.util.concurrent.ForkJoinPool.common.parallelism
配置公共池的并行度时,您可以安全地指定更多(最多 Integer.MAX_VALUE
),它会默默地减少到支持的最大值然后.
我知道我们可以用-Djava.util.concurrent.ForkJoinPool.common.parallelism来设置并行度,但是有没有上限呢?
通过查看 ForkJoinPool
的源代码,我找到了
MAX_CAP = 0x7fff; // max #workers - 1
这是在使用构造函数时强制执行的 ForkJoinPool(int)
,方法是在您尝试指定更多时抛出异常。但是,当使用系统 属性、java.util.concurrent.ForkJoinPool.common.parallelism
配置公共池的并行度时,您可以安全地指定更多(最多 Integer.MAX_VALUE
),它会默默地减少到支持的最大值然后.