java - 官方文檔認為Java流操作的並行使用 fork/join?

  显示原文与译文双语对照的内容
113 1

以下是我對Java的流框架插件的了解:

  • 一些東西創建了源流。
  • 實現負責提供一個基於xml的BaseStream#parallel ( ) 方法,該方法將返回一個可以並行運行的流,該流是。

在 someone found我已經找到了一個方法使用custom並行的線程池Stream我不能在 Java 8 API中發現默認的Java 8並行流實現將使用 ForkJoinPool#commonPool ( ) 實現。在API中,我不知道的API中的方法( Collection#parallelStream ( ),以及其他可能的並行啟用流的源) 。

只有那些我可以隱藏搜索結果的小技巧是:

  • Lambda的狀態:hood") 下的庫版本("並行性。
    含糊的提到了流框架和 fork/連接機械。

    fork/join機械是為了自動化這一過程而設計的。

  • JEP 107: 收集集合的大容量數據操作
    幾乎直接聲明 Collection 默認介面方法 #parallelStream() 使用 fork/join來實現自身。但還是沒有關於公共游泳池的東西。

    並行實現構建在 Java 7中引入的java.util.concurrency fork/join實現之上。

    因此,Collection#parallelStream ( )

  • 類數組( Javadoc )
    直接狀態多次使用公用池。

    ForkJoin公共池用於執行任何並行任務。

我的問題是:

在Where中, ForkJoinPool#commonPool ( ) 插件用於對從 Java API獲取的流執行並行操作

时间:原作者:0个回答

101 0

Java,Java操作中有一個關於並行數據處理和性能的章節( 第 7章) 。這說明:

"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"。"

"。"。"。你將看到如何使用 Java 7中引入的fork/聯接框架使這裡魔術發生或者更多的並行流如何工作"

它在第 7.1節也有一個小的附註:

"並行流在內部使用默認的ForkJoinPool 。"。"。默認情況下,由於處理器返回的線程多。Runtime.getRuntime().availableProcessors()."

"可以使用系統屬性 java.util. concurrent.ForkJoinPool.common.parallelism, 更改這裡池的大小,如下面的示例所示:"

System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism","12");

就像在評論和其他答案中提到的,這並不意味著它總是使用 fork/join 。

原作者:
...