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();
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容