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。
java8 新特性parallelStream 修改默认多线程数量的更多相关文章
- Java8新特性——接口的默认方法和类方法
Java8新增了接口的默认方法和类方法: 以前,接口里的方法要求全部是抽象方法,java8以后允许在接口里定义默认方法和类方法: 不同的是: 默认方法可以通过实现接口的类实例化的对象来调用,而类方法只 ...
- 【Java8新特性】- 接口中默认方法修饰为普通方法
Java8新特性 - 接口中默认方法修饰为普通方法 生命不息,写作不止 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学 ...
- 乐字节-Java8新特性-接口默认方法
总概 JAVA8 已经发布很久,而且毫无疑问,java8是自java5(2004年发布)之后的最重要的版本.其中包括语言.编译器.库.工具和JVM等诸多方面的新特性. Java8 新特性列表如下: 接 ...
- 乐字节-Java8新特性-接口默认方法之Stream流(下)
接上一篇:<Java8新特性之stream>,下面继续接着讲Stream 5.流的中间操作 常见的流的中间操作,归为以下三大类:筛选和切片流操作.元素映射操作.元素排序操作: 操作 描述 ...
- 【Java8新特性】接口中的默认方法和静态方法,你都掌握了吗?
写在前面 在Java8之前的版本中,接口中只能声明常量和抽象方法,接口的实现类中必须实现接口中所有的抽象方法.而在Java8中,接口中可以声明默认方法和静态方法,本文,我们就一起探讨下接口中的默认方法 ...
- Java8新特性系列-默认方法
Java8 Interface Default and Static Methods 原文连接:Java8新特性系列-默认方法 – 微爱博客 在 Java 8 之前,接口只能有公共抽象方法. 如果不强 ...
- 2020你还不会Java8新特性?
Java8(1)新特性介绍及Lambda表达式 前言: 跟大娃一块看,把原来的电脑拿出来放中间看视频用 --- 以后会有的课程 难度 深入Java 8 难度1 并发与netty 难度3 JVM 难度4 ...
- Java8 新特性之Stream----java.util.stream
这个包主要提供元素的streams函数操作,比如对collections的map,reduce. 例如: int sum = widgets.stream() .filter(b -> b.ge ...
- 这可能是史上最好的 Java8 新特性 Stream 流教程
本文翻译自 https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ 作者: @Winterbe 欢迎关注个人微信公众 ...
随机推荐
- Linux下快速安装Python3和pip
如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 一.安装p ...
- Shadowmap简易实现
之前一直没有自己实现过阴影,只是概念上有所了解,这次通过Demo进行实际编写操作. 总的来说没有什么可以优化的,倒是对于窗户这种可用面片代替的物体似乎能优化到贴图上,之前arm有个象棋屋的demo做过 ...
- Unity PhysicsScene测试
应该是unity 2018.3中加入的功能,对象可以放置于不同的物理场景中. 一个Scene对应一个物理场景(PhysicsScene),若想放入独立的物理场景测试创建一个Scene即可.见下图gif ...
- Django:RestFramework之-------分页
9.分页操作 分页,看第n页,每页显示n条数据 分页,在n个位置,向后查看n条数据. 加密分页,上一页和下一页 1.基于PageNumberPagination分页 1.路由: url(r'^(?P& ...
- jvm学习笔记之class文件的加载、初始化
编写的java文件在要真正运行时,会首先被编译成 “.class"结尾的二进制文件,然后被虚拟机加载.那么在虚拟机中一个class文件要成为java实例,需要经历好几个步骤: 1.装载:装载 ...
- 阿里云ECS使用vnc远程连接(Ubuntu + CentOS)
阿里云ECS使用vnc远程连接https://blog.csdn.net/m0_37264397/article/details/78271896 在Linux实例上自动安装并运行VNC Server ...
- CRM ORDER SEARCH增强查询条件(已有字段)
ORDER_H表增强的两个字段,很早了,非AET,非EEWB,所以也加不到标准的搜索界面. GENIL_MODEL_BROWSER找到对应的查询和结果结构,append进字段:ZZZBRAND. 然后 ...
- Golang报错:Cannot convert expression of type interface{} to type []byte
在使用golang实现后端登录逻辑的时候,碰到下面的问题:Cannot convert expression of type interface{} to type []byte 首先介绍下问题出现的 ...
- oracle-常用sql语句和函数
1.求字符串长度 --计算字符串长度的函数 select length('你好世界!') len from dual; 2.常用函数 -- dbms_random.value(1,7) 获取(1,7) ...
- python的with语法的深入理解
如果你有一些对象(比如一个文件.网络连接或锁),需要支持 with 语句,下面介绍两种定义方法. 方法(1): 首先介绍下with 工作原理 (1)紧跟with后面的语句被求值后,返回对象的“__en ...