Java 8:当forkjoinpool的大小大于可用处理器的数量时,forkjoinpool内部的parallelstream使用更多线程

时间:2019-09-10 04:04:35

标签: java forkjoinpool

我的系统中总共有8个可用处理器。 当forkjoinpool显式设置为8或其中的任何数字时,parallelstream将使用该数量的工作线程。

但是,当我使用大于8的数字时,parallelstream创建的工作线程范围为0-15。

使用以下代码控制由parallelstream创建的并行线程数时,这是否是预期的行为。

List<String> list = new ArrayList<String>(); // 1000 names in it

ForkJoinPool forkJoinPool = new ForkJoinPool(8);
            forkJoinPool.submit(() ->
             list.parallelStream().forEach(name -> {
                     try {
                        Thread.sleep(5);
                        System.out.println("Name : " + name);
                    } catch (InterruptedException e) {
                    }
              })
           ).get();

0 个答案:

没有答案