Java 8 Streams 中的并行性和 Flatmap

2023-12-27

考虑以下示例:

    IntStream.of(-1, 1)
             .parallel()
             .flatMap(i->IntStream.range(0,1000).parallel())
             .forEach(System.out::println);

我是否将内部标志设置为并行有关系吗?无论我是否将其保留,结果看起来都非常相似。

另外为什么代码(ReferencePipeline)对映射进行排序?

我很困惑line 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:

result.sequential().forEach(downstream);

在当前的JDK(jdk1.8.0_25)中,答案是否定的,将内部标志设置为并行并不重要, 因为即使你设置了它,.flatMap 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() 实现将流设置回顺序的 here:

result.sequential().forEach(downstream);

(“结果”是内部流,它是顺序() http://docs.oracle.com/javase/8/docs/api/java/util/stream/BaseStream.html#sequential--方法的文档说:返回一个等效的连续流。可能会返回自身,因为流已经是顺序的,或者因为基础流状态已修改为顺序的。)

大多数情况下可能有不费力使内流平行;如果外部流的项目数至少与可以并行运行的线程数相同(ForkJoinPool.commonPool().getParallelism() = 3在我的电脑中)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 8 Streams 中的并行性和 Flatmap 的相关文章

随机推荐

  • SQL 插入条件查询

    我试图在满足条件时将值插入表的 1 列 注意 该表已包含所有列的数据 但 1 列为空 我想根据 WHERE 子句将值插入到这 1 列中 我有这样的疑问 INSERT INTO
  • 在 Mac 上使用 AVFoundation 捕获 iSight 图像

    我之前使用以下代码使用 QTKit 从 Mac 的 iSight 摄像头捕获单个图像 NSError takePicture BOOL success NSError error captureSession QTCaptureSessio
  • IronPython 在托管时如何加载模块?

    我对 IronPython 在托管时加载模块的方式感到困惑 我正在使用使用 MSI 包安装的 IronPython 2 7 7 并且我已经引用了C Program Files x86 IronPython 2 7 IronPython dl
  • Web 浏览器和 OLECMDID_SELECTALL

    当我使用以下命令打开 Google 网页时 WebBrowser1 Navigate http www google com au advanced search hl en 它打开时光标位于编辑框中 所以当我使用 WebBrowser1
  • JQuery mobile - 如何设置多重选择的值?

    我在 jquery mobile 中有一个多重选择 docs http jquerymobile com demos 1 0a4 1 docs forms forms selects html http jquerymobile com d
  • 对不平衡面板数据集进行子集化,以在 R 中至少有 2 个连续观测值

    我在 R 中有一个不平衡面板数据集 以下将作为示例 dt lt data frame name rep c A B C c 3 2 3 year c 2001 2003 2000 2002 2000 2001 2003 gt dt name
  • MATLAB eig 有时会返回倒号

    我正在尝试编写一个获取矩阵的程序A任何大小 SVD 分解它 A U S V Where A是用户输入的矩阵 U是由特征向量组成的正交矩阵A A S是奇异值的对角矩阵 并且V是特征向量的正交矩阵A A 问题是 MATLAB 函数eig有时会返
  • 访问shared_ptr数组

    include
  • 从文本文件中提取数据时出现问题

    我是 python 新手 我想从这种格式中提取数据 FBpp0143497 5 151 5 157 PF00339 22 Arrestin N Domain 1 135 149 83 4 1 1e 23 1 CL0135 FBpp01434
  • Javascript 获取表单数组值

    我设置了一个表单 其中有一个添加按钮 以便我的用户可以一次向该网站提交多人 首先 表单有一个输入来填写人员姓名 如下例所示
  • 计算每列中小于 x 的元素数量

    我有一个如下所示的数据框 我试图计算每列中小于 2 0 的元素数量 然后我将在条形图中可视化结果 我使用列表和循环来做到这一点 但我想知道是否有一种 熊猫方式 可以快速做到这一点 x for i in range 6 x append df
  • F# 使用累加器,仍然出现堆栈溢出异常

    在下面的函数中 我尝试通过使用累加器来设置尾递归 但是 我遇到了堆栈溢出异常 这让我相信我设置函数的方式没有正确启用尾递归 F attempting to make a tail recursive call via accumulator
  • 创建表达式树以访问通用类型的属性

    我需要编写一个泛型方法 它采用泛型类型的实例和字符串格式的属性名称 并返回一个表达式树 我需要转换一个简单的 lambda 表达式 a gt a SomePropertyName where a是泛型类型将拥有财产按名字SomeProper
  • “无法在此文件中预览 - 无法启动 [应用程序名称]”

    我正在尝试在 Xcode 11 和 macOS Catalina 中使用 swiftUI 但 创建新项目后 会出现一个样板代码 其中包含文本 hello World 我想在代码旁边的画布中实时预览这个简单的欢迎消息 当我点击恢复按钮时 它说
  • 优雅的蟒蛇? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JS:不确定函数返回的原因

    确实是新手问题 但为什么我的函数返回 1 该函数确实有匹配项 那么为什么该函数返回 1 而不是索引值 如果我删除 else 语句 它将返回正确的输出 let array 1 2 3 4 5 6 7 8 9 let target 5 func
  • Powershell 在过去 6 个月内禁用 AD 用户?

    如何获取过去 6 个月内禁用的 AD 用户以及禁用时的时间戳 以 dd MM yyyy 格式作为 CSV 文件 就像使用这个 Powershellhttps learn microsoft com en us powershell modu
  • PHP 会话注销错误

    许多人可能会使用 PHP mySQL 函数作为网站的登录部分 我正在尝试使用这段代码 在每个内容页面上 检查是否已登录 在每个内容页面的标题中 Page Content Here 登录脚本 由我的 main login php 页面引用
  • 在 onDraw() 中保存画布;

    我试图将 Canvas 对象保存在 onDraw 方法中 这是因为我在 onDraw 方法中使用了 foreach 循环 结果是 canvas DrawText 文本项 x y textpaint 我必须这样做 因为我在遮罩区域周围绘制文本
  • Java 8 Streams 中的并行性和 Flatmap

    考虑以下示例 IntStream of 1 1 parallel flatMap i gt IntStream range 0 1000 parallel forEach System out println 我是否将内部标志设置为并行有关