java8 新特性parallelStream 修改默认多线程数量


parallelStream默认使用了fork-join框架,其默认线程数是CPU核心数。

通过测试实践,发现有两种方法来修改默认的多线程数量:

1、全局设置

在运行代码之前,加入如下代码:

System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "20");

2、代码块内部设置

ForkJoinPool forkJoinPool1 = new ForkJoinPool(20);
ForkJoinTask<Boolean> fs = forkJoinPool.submit(() -> inputStream.allMatch(element -> {
Thread.sleep(300);
System.out.println(Thread.currentThread().getName());
System.out.println("线程数量:" + Thread.activeCount());
return new Random().nextInt(100) >= 0;
}));
try {
result = fs.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e){
e.printStackTrace();
}
forkJoinPool.shutdown();

parallelStream对多线程做了部分优化,如果是java7或之前版本还是老老实实用Concurrency。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM