并行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),它会默默地减少到支持的最大值然后.