zoukankan      html  css  js  c++  java
  • 并发编程-线程池(四)线程池ThreadPoolExecutor参数设置

    参数说明

    corePoolSize

      核心线程数,核心线程会一直存活,即使没有任务需要处理。当线程数小于核心线程数时,即使现有的线程空闲,线程池也会优先创建新线程来处理任务,而不是直接交给现有的线程处理。

      核心线程在allowCoreThreadTimeout被设置为true时会超时退出,默认情况下不会退出。

    maxPoolSize

      当线程数大于或等于核心线程,且任务队列已满时,线程池会创建新的线程,直到线程数量达到maxPoolSize。如果线程数已等于maxPoolSize,且任务队列已满,则已超出线程池的处理能力,线程池会拒绝处理任务而抛出异常。

    queueCapacity

      任务队列容量。从maxPoolSize的描述上可以看出,任务队列的容量会影响到线程的变化,因此任务队列的长度也需要恰当的设置。

    keepAliveTime

      当线程空闲时间达到keepAliveTime,该线程会退出,直到线程数量等于corePoolSize。如果allowCoreThreadTimeout设置为true,则所有线程均会退出直到线程数量为0。

    线程池按以下行为执行任务
      当线程数小于核心线程数时,创建线程。
      当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。
      当线程数大于等于核心线程数,且任务队列已满
      若线程数小于最大线程数,创建线程
      若线程数等于最大线程数,抛出异常,拒绝任务

    参数如何设置:

      https://blog.csdn.net/riemann_/article/details/104704197

  • 相关阅读:
    BZOJ 1597: [Usaco2008 Mar]土地购买
    BZOJ 1005: [HNOI2008]明明的烦恼
    BZOJ 1004: [HNOI2008]Cards
    Burnside引理和Polya定理
    BZOJ 1003: [ZJOI2006]物流运输
    BZOJ 1002: [FJOI2007]轮状病毒
    BZOJ 1001: [BeiJing2006]狼抓兔子
    网络流 最大流dinic算法解释
    51nod 1299 监狱逃离
    2017.11.26【清华集训2017】模拟
  • 原文地址:https://www.cnblogs.com/Jomini/p/13850481.html
Copyright © 2011-2022 走看看