Java中的并行数据处理

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

并行流可以定义为将数据收集元素拆分为多个流的流。每个流都分配给一个单独的块,并且与一个不同的线程关联。在多处理器的帮助下,工作被划分在多个线程之间。这样,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”,并将此输出打印在屏幕上。