Java 并行流示例17 Mar 2025 | 4 分钟阅读 并行流是在Java 8或更高版本中引入的。它是函数式编程的一部分。利用并行流的特性,我们可以利用处理器的多个核心。Java 中的任何流都可以轻松地从顺序流转换为并行流。在本节中,我们将讨论Java 中的并行流是什么以及在 Java 中实现并行流的方法。 Java 中的并行流是什么?通常,Java 代码具有一个按顺序执行的处理流。另一方面,通过使用并行流,我们可以将代码块分成在多个核心上并行执行的流。最终结果是不同结果(输出)的组合。请注意,执行顺序并不重要,也不在我们手中。它广泛用于 lambda 表达式。 并行流(flow)是支持各种函数并旨在产生可靠输出的对象流。它不是数据结构,因此不允许用户从 Collection、Arrays 和其他 API 输入数据。 请注意,它不会改变功能的实际行为,而是根据管道提供输出。![]() 因此,建议我们在不考虑执行顺序且结果不受影响的情况下使用并行流。另外,值得注意的是,一个元素的状态不会影响另一个元素,数据源本身也不会受到影响。 为什么要使用并行流?并行流的功能是为了提高程序的性能而引入的。但并非总是有效,因为在各种情况下我们需要按特定顺序执行过程。在这种情况下,我们可以有效地使用顺序执行来以经济高效的性能完成任务。 顺序流和并行流之间的唯一区别仅与大规模程序或复杂程序有关。对于小型程序可能无效。因此,我们必须考虑并行流,因为顺序流表现不佳。 当流并行执行时,运行时期间的过程会被划分为多个子流,聚合操作并行地遍历这些子流的过程,然后合并结果。请注意,当我们创建流时,除非我们指定,否则它始终是串行流。
并行流的属性
如何在 Java 中创建并行流?在 Java 中创建并行流有两种方法:
使用流上的 parallel() 方法parallel() 方法定义在属于 java.util.stream 包的 BaseStream 接口中。它执行中间操作。它返回一个等效的并行流。如果流已经是并行的,或者流的状态已更改为并行,它也可以返回自身。 语法 让我们通过一个 Java 程序创建一个并行流。 在下面的程序中,我们创建了 File 类的构造函数,并将一个文件传递给它。之后,我们创建了一个 Stream,它一次读取指定的文本文件的一行。在下一条语句中,我们调用了 parallel() 方法,该方法将文件的文本打印到控制台。这里需要注意的一点是,每次运行时的执行顺序都不同。 注意:创建一个名为 demo.txt 的文件并向其中写入一些内容,以便获得正确的输出。ParallelStreamExample1.java 输出 Rahul Anupam Shubham Nikhil Ashish Yuvan 注意:我们在上述位置创建了名为 demo.txt 的文件。如果您想要相同的结果,请创建同名文件并(如输出所示)将数据写入该文件。使用集合上的 parallelStream() 方法parallelStream() 方法是 Collections 接口中的一个预定义方法,属于 java.util 包。它返回以集合为源的并行流。 在下面的 Java 程序中,我们做了同样的事情,但在这个程序中,我们使用了 List 来从文件中读取文本。我们使用了 paralleStream() 方法,而不是 parallel() 方法。 ParallelStreamExample2.java 输出 Silver Golden Black Green Blue Orange Gray Red 注意:我们在上述位置创建了名为 color.txt 的文件。如果您想要相同的结果,请创建同名文件并(如输出所示)将数据写入该文件。下一个主题Java 中的 SHA 哈希 |
Java 是一种多功能编程语言,提供了广泛的类和数据结构来促进高效编码。BitSet 就是其中一个类,它允许以比单个布尔值更高的级别来操作位。在本节中,我们将深入探讨 BitSet...
阅读 4 分钟
在 Java 中,List 是 Collection 框架的一个接口。它允许我们维护对象的有序集合。List 接口的实现类有 ArrayList、LinkedList、Stack 和 Vector。ArrayList 和 LinkedList 在 Java 中被广泛使用。在本节中,我们...
阅读 4 分钟
回文数组与回文字符串类似,正反读都一样。检查此项涉及从两端对称地比较元素。Java 程序会遍历数组,验证第一个和最后一个元素是否相等,依此类推,确保简单而...
7 分钟阅读
在 Java 中,线程是独立的执行单元,可以并发运行,通过利用多个 CPU 核心来提高处理速度。Java 中的线程安全是指程序或代码的属性,无论其数量如何,都能正确处理和执行...
阅读 4 分钟
在 Java 中,逻辑运算符用于对布尔表达式执行逻辑运算。它们通常会评估表达式的两侧。Java 中有三种逻辑运算符:逻辑与 (&&) 逻辑或 (||) 逻辑非 (!) 运算符 运算符名称 示例 说明 && 逻辑与 a&&b 两个条件必须为真才能得到结果...
7 分钟阅读
错误本身的名称表明这是一个内存不足错误,当 JVM 无法在堆内存中分配对象时会抛出此类错误。因此,在本节中,我们将讨论 Java.lang.outofmemory 错误、堆空间以及如何...
7 分钟阅读
在 Java 中,单例模式和静态类用于控制实例创建和对类级别行为的访问,但它们的作用不同,并且具有不同的特性。单例模式 Java 中的单例模式是一种设计模式,它保证只有一个实例……
阅读 6 分钟
在编程中,查找数组的并集和交集是常见的操作。在本节中,我们将实现一个 Java 程序来查找两个未排序数组的并集和交集的逻辑。并集可以通过组合两个...
阅读9分钟
二叉树中两个节点的最低公共祖先(LCA)是树中最深的、同时包含这两个指定节点作为其后代的节点。它在分层设置、网络路由和面向树的计算等多个应用程序中发挥着至关重要的作用。示例 1:...
阅读 13 分钟
如何在 Java 中将 String 转换为 String 数组? 在 Java 中,String 是一个表示字符序列的对象。 为了使用 String,我们需要导入 java.lang 包中定义的 String 类。 String 数组是字符串的数组...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India