java8 新特性parallelStream 修改默認多線程數量


parallelStream默認使用了fork-join框架,其默認線程數是CPU核心數。

通過測試實踐,發現有兩種方法來修改默認的多線程數量:

1、全局設置

在運行代碼之前,加入如下代碼:

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

2、代碼塊內部設置

ForkJoinPool forkJoinPool1 = new ForkJoinPool(20);
ForkJoinTask<Boolean> fs = forkJoinPool.submit(() -> inputStream.allMatch(element -> {
Thread.sleep(300);
System.out.println(Thread.currentThread().getName());
System.out.println("線程數量:" + Thread.activeCount());
return new Random().nextInt(100) >= 0;
}));
try {
result = fs.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e){
e.printStackTrace();
}
forkJoinPool.shutdown();

parallelStream對多線程做了部分優化,如果是java7或之前版本還是老老實實用Concurrency。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM