JDK8中并行流与串行流的工作原理及区别是什么?

2026-05-24 10:160阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1422个文字,预计阅读时间需要6分钟。

JDK8中并行流与串行流的工作原理及区别是什么?

由于处理器核心的增加以及较低的硬件成本,低成本的集群系统得以实现,使得并行编程变得无处不在。并行编程似乎成了下一件大事。

Java 8 提供了新的 stream API 和简化了创建并行的便利性。

由于处理器核心的增长及较低的硬件成本允许低成本的集群系统,致使如今并行编程无处不在,并行编程似乎是下一个大事件。

Java 8 针对这一事实提供了新的 stream API 及简化了创建并行集合和数组的代码。让我们看一下它是怎么工作的。

假设 myList 是 List<Integer> 类型的,其中包含 500,000 个Integer值。在Java 8 之前的时代中,对这些整数求和的方法是使用 for 循环完成的。

for( int i : myList){ result += i; }

从 Java 8 开始,我们就可以使用stream完成同样的循环:

myList.stream().sum();

将此代码改为并行处理非常简单,仅需要使用 parallelStream() 代替 stream() 或 parallel()搭配stream使用:

mylist.stream().parallelStream().sum();

这样就可以成功的变为并行程序,所以将一个计算扩展到线程和CPU内核上并可用很容易就可以实现。但是我们都知道,多线程和并行处理的开销很大,所以重点是什么时候使用并行流,什么时候使用串行流才能获得更好的性能。

首先,让我们看看在幕后发生的事情。

阅读全文

本文共计1422个文字,预计阅读时间需要6分钟。

JDK8中并行流与串行流的工作原理及区别是什么?

由于处理器核心的增加以及较低的硬件成本,低成本的集群系统得以实现,使得并行编程变得无处不在。并行编程似乎成了下一件大事。

Java 8 提供了新的 stream API 和简化了创建并行的便利性。

由于处理器核心的增长及较低的硬件成本允许低成本的集群系统,致使如今并行编程无处不在,并行编程似乎是下一个大事件。

Java 8 针对这一事实提供了新的 stream API 及简化了创建并行集合和数组的代码。让我们看一下它是怎么工作的。

假设 myList 是 List<Integer> 类型的,其中包含 500,000 个Integer值。在Java 8 之前的时代中,对这些整数求和的方法是使用 for 循环完成的。

for( int i : myList){ result += i; }

从 Java 8 开始,我们就可以使用stream完成同样的循环:

myList.stream().sum();

将此代码改为并行处理非常简单,仅需要使用 parallelStream() 代替 stream() 或 parallel()搭配stream使用:

mylist.stream().parallelStream().sum();

这样就可以成功的变为并行程序,所以将一个计算扩展到线程和CPU内核上并可用很容易就可以实现。但是我们都知道,多线程和并行处理的开销很大,所以重点是什么时候使用并行流,什么时候使用串行流才能获得更好的性能。

首先,让我们看看在幕后发生的事情。

阅读全文