zoukankan      html  css  js  c++  java
  • 线程池七大参数解析

    先展示一下jdk8中ThreadPoolExecutor构造方法的源码

    public ThreadPoolExecutor(int corePoolSize,
    int maximumPoolSize,
    long keepAliveTime,
    TimeUnit unit,
    BlockingQueue<Runnable> workQueue,
    ThreadFactory threadFactory,
    RejectedExecutionHandler handler) {
    if (corePoolSize < 0 ||
    maximumPoolSize <= 0 ||
    maximumPoolSize < corePoolSize ||
    keepAliveTime < 0)
    throw new IllegalArgumentException();
    if (workQueue == null || threadFactory == null || handler == null)
    throw new NullPointerException();
    this.acc = System.getSecurityManager() == null ?
    null :
    AccessController.getContext();
    this.corePoolSize = corePoolSize;
    this.maximumPoolSize = maximumPoolSize;
    this.workQueue = workQueue;
    this.keepAliveTime = unit.toNanos(keepAliveTime);
    this.threadFactory = threadFactory;
    this.handler = handler;
    }
    corePoolSize    //核心线程数量,会一直存在,除非allowCoreThreadTimeOut设置为true
    maximumPoolSize  //线程池允许的最大线程池数量
    keepAliveTime   //线程数量超过corePoolSize,空闲线程的最大超时时间
    unit        //超时时间的单位
    workQueue     //工作队列,保存未执行的Runnable 任务
    threadFactory   //创建线程的工厂类
    handler      //当线程已满,工作队列也满了的时候,会被调用。被用来实现各种拒绝策略。
  • 相关阅读:
    第三次迭代目标
    UML用例图以及时序图
    第一次迭代目标完成情况及感想
    第四次迭代感想
    数据流图与数据流程图的区别
    第三次迭代感想
    速达的用例图与时序图
    第一次迭代的感想
    速达的WBS
    NABCD的分解
  • 原文地址:https://www.cnblogs.com/chuzijing/p/14445866.html
Copyright © 2011-2022 走看看