Java 8 Streams中的并行和平面图
发布时间:2020-12-14 05:10:28 所属栏目:Java 来源:网络整理
导读:嗨,我使用flatmap有一个关于并行的问题 请考虑以下示例 IntStream.of(-1,1).parallel().flatMap(i-IntStream.range(0,1000).parallel()).forEach(System.out::println); 是否将内部标志设置为并行?如果我离开它,结果看起来很相似. 为什么代码(ReferencePipe
嗨,我使用flatmap有一个关于并行的问题
请考虑以下示例 IntStream.of(-1,1).parallel().flatMap(i->IntStream.range(0,1000).parallel()).forEach(System.out::println); 是否将内部标志设置为并行?如果我离开它,结果看起来很相似. result.sequential().forEach(downstream); http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java/util/stream/ReferencePipeline.java#ReferencePipeline.flatMap%28java.util.function.Function%29 解决方法
在当前的JDK(jdk1.8.0_25)中,答案是否定的,将内部标志设置为并行无关紧要,
因为即使你设置它,.flatMap()实现集将流回到顺序在这里: result.sequential().forEach(downstream); (“result”是内部流,它的sequential()方法的doc说:返回一个等价的流,它是顺序的,可能返回自己,因为流已经是顺序的,或者因为底层的流状态被修改为顺序的. 在大多数情况下,不可能使内流平行;如果外部流具有与可以并行运行的线程数相同数量的项目(ForkJoinPool.commonPool().在我的计算机中的getParallelism()= 3). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Eclipse与Netbeans Web服务工具
- java – Jersey’NoContent’响应返回200而不是204
- 安卓判断快捷方式是否存在
- JSP config.getInitParameterNames()方法:获取所有的初始参
- Java为参数分配一个新值,这被认为是不好的做法吗?
- JAVA格式化时间日期的简单实例
- java – Android工作室不解析IDE中用Kotlin(.kt)编写的类,但
- java – 无法添加到ArrayList“misplaced construct(s)”
- model-view-controller – JavaFX在没有控制器的fxml中包含
- java – OpenJDK 11问题 – 客户端在最后一次UNWRAP之前完