`
kanpiaoxue
  • 浏览: 1744755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

指定java stream中并行处理的线程池大小

阅读更多
Java8实战:并行线程池 写道
并行流内部使用了默认的ForkJoinPool,它默认的 线程数量就是你的处理器数量,这个值是由Runtime.getRuntime().availableProcessors()得到的。
但是你可以通过系统属性 java.util.concurrent.ForkJoinPool.common.parallelism 来改变线程池大小,如下所示:
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism","12");
这是一个全局设置,因此它将影响代码中所有的并行流。反过来说,目前还无法专为某个并行流指定这个值。
一般而言,让ForkJoinPool的大小等于处理器数量是个不错的默认值, 除非你有很好的理由,否则我们强烈建议你不要修改它。

 

    static void test001() {
        System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "120");

        IntStream.range(0, 100).parallel().forEach(n -> {
            System.out.println(String.format("%s --> %s", Thread.currentThread().getName(), n));
        });
    }

  

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics