考虑以下示例:
IntStream.of(-1, 1)
.parallel()
.flatMap(i->IntStream.range(0,1000).parallel())
.forEach(System.out::println);
是否将内部标志设置为并行重要吗?不管我把它放在一边还是不放,结果看起来都很相似。
另外,为什么代码(ReferencePipeline
)对映射进行序列化?我被这个问题弄糊涂了。line
result.sequential().forEach(downstream);
发布于 2021-02-26 20:48:30
对于像我这样的人来说,他们迫切需要并行化flatMap,需要一些实用的解决方案,而不仅仅是历史和理论。
我想出的最简单的解决方案是手工展平,基本上是用map + reduce(Stream::concat)
..。
已经在另一个帖子中发布了详细信息的答案:https://stackoverflow.com/a/66386078/3606820
https://stackoverflow.com/questions/24411313
复制相似问题