Java 中的并行数据处理


Java 8 中引入的 Java 中的“流”接口用于以声明的方式操作数据集合。流接口还可用于并行执行进程,而不会使进程过于复杂。这意味着,可以将顺序流声明性地转换为并行流。

并行流可以定义为一个将数据集合元素拆分为多个流的流。每个流都分配到一个单独的块,并且与一个不同的线程关联。在多处理器的帮助下,工作在多个线程之间进行划分。这样,CPU 资源得到有效利用,并且保持忙碌。可以通过在前缀添加关键字“parallel”将顺序流转换为并行流。以下是一个示例 -

示例

 在线演示

import java.util.stream.*;
import java.util.Collections.*;
public class Demo {
   static long sum_in_parallel(long n) {
      return Stream.iterate(1L, i->i + 1).limit(n).parallel().reduce(0L, Long::sum);
   }
   public static void main(String[] args) {
      long c = sum_in_parallel(23);
      System.out.println("Sum, when computed in parallel is " + c);
   }
}

输出

Sum, when computed in parallel is 276

一个名为 Demo 的类包含一个名为“sum_in_parallel”的函数,该函数采用一个长整型作为参数,并返回一个可以并行迭代的流。在主函数中,通过传递值来调用“sum_in_parallel”,并在屏幕上打印此输出。

更新于: 2020-09-14

1000+ 浏览

开启您的职业生涯

完成课程后获得认证

开始学习
广告