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+ 瀏覽

開啟您的職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.