1. 程式人生 > >java 8 第16篇 配置並行流使用的執行緒池

java 8 第16篇 配置並行流使用的執行緒池

     看看流的parallel方法,你可能會想,並行流用的執行緒是從哪兒來的?有多少個?怎麼 自定義這個過程呢?

      並行流內部使用了預設的ForkJoinPool(7.2節會進一步講到分支/合併框架),它預設的 執行緒數量就是你的處理器數量, 這個值是由Runtime.getRuntime().available- Processors()得到的。      但是你可以通過系統屬性java.util.concurrent.ForkJoinPool.common. parallelism來改變執行緒池大小,如下所示:       System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism","12");       這是一個全域性設定,因此它將影響程式碼中所有的並行流。反過來說,目前還無法專為某個 並行流指定這個值。一般而言,讓ForkJoinPool的大小等於處理器數量是個不錯的預設值, 除非你有很好的理由,否則我們強烈建議你不要修改它。

來源於java 8 實戰的書籍