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      //当线程已满,工作队列也满了的时候,会被调用。被用来实现各种拒绝策略。
  • 相关阅读:
    tomcat自启动的最简单的方法
    Eclipse引入DTD文件
    MyBatis框架之基本知识介绍
    【转】Linux系统安装Redis详细过程
    Spring MVC + Spring + MyBatis 框架整合
    Spring框架之IoC和AOP
    Mysql 时间相关
    【转】Spring事务详解
    Spring的注解问题
    关于Calendar的一些用法总结
  • 原文地址:https://www.cnblogs.com/chuzijing/p/14445866.html
Copyright © 2011-2022 走看看