java8 新特性parallelStream 修改默认多线程数量 转载
parallelStream默认使用了fork-join框架,其默认线程数是CPU核心数。
通过测试实践,发现有两种方法来修改默认的多线程数量:
1、全局设置
在运行代码之前,加入如下代码:
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "20");
1.
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();
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
parallelStream对多线程做了部分优化,如果是java7或之前版本还是老老实实用Concurrency。
-----------------------------------
java8 新特性parallelStream 修改默认多线程数量
https://blog.51cto.com/u_15067223/3817180
通过测试实践,发现有两种方法来修改默认的多线程数量:
1、全局设置
在运行代码之前,加入如下代码:
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "20");
1.
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();
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
parallelStream对多线程做了部分优化,如果是java7或之前版本还是老老实实用Concurrency。
-----------------------------------
java8 新特性parallelStream 修改默认多线程数量
https://blog.51cto.com/u_15067223/3817180
分类:
Java
标签:
java
, parellstream
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2018-07-06 Java 堆内存
2018-07-06 JVM调优总结 -Xms -Xmx -Xmn -Xss
2018-07-06 JVM 新生代老年代
2018-07-06 大型跨境电商 JVM 调优经历