zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    物理好题随想
    学案12:电场强度和静电现象
    vscode插件记录
    windows使用总结
    元素周期律 + 元素周期表
    酸碱理论
    氮族元素——磷
    氮族元素——氮
    碱金属元素
    SDN第一次上机实验
  • 原文地址:https://www.cnblogs.com/tiancai/p/15192374.html
Copyright © 2011-2022 走看看