Java8:forkjoinpool内的parallelstream在forkjoinpool的大小超过可用处理器数量时使用更多线程
我的系统中总共有8个可用处理器。 当forkjoinpool显式设置为8或其下的任何数字时,parallelstream将使用该数量的工作线程 但是,当我使用大于8的数字时,parallelstream会创建范围为0-15的工作线程 当您使用下面的代码控制由parallelstream创建的并行线程数时,这是否是预期的行为Java8:forkjoinpool内的parallelstream在forkjoinpool的大小超过可用处理器数量时使用更多线程,java,forkjoinpool,Java,Forkjoinpool,我的系统中总共有8个可用处理器。 当forkjoinpool显式设置为8或其下的任何数字时,parallelstream将使用该数量的工作线程 但是,当我使用大于8的数字时,parallelstream会创建范围为0-15的工作线程 当您使用下面的代码控制由parallelstream创建的并行线程数时,这是否是预期的行为 List<String> list = new ArrayList<String>(); // 1000 names in it ForkJoinP
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();
List List=new ArrayList();//里面有1000个名字
ForkJoinPool ForkJoinPool=新的ForkJoinPool(8);
forkJoinPool.submit(()->
list.parallelStream().forEach(名称->{
试一试{
睡眠(5);
System.out.println(“名称:”+Name);
}捕捉(中断异常e){
}
})
).get();