栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java多线程编程:ThreadPoolExecutor类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java多线程编程:ThreadPoolExecutor类

ThreadPoolExecutor Constructor Detail

ThreadPoolExecutor 类共有四个构造函数,最多共有七个参数,接下来依次对这七个参数进行介绍

ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadFactor threadFactor, RejectedExecutionHandler handler)

  • corePoolSize :要保留在池中的线程数,即使他们处于空闲状态,除非 allowCoreThreadTimeOut 已设置。默认情况下,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,当线程池中的线程数数目少于corePoolSize 时,有新任务进来就新建一个线程,即使有的线程没事干,当线程池中的线程数目达到 corePoolSize 时,将到达的任务放在缓存队列中。
  • maximumPoolSize :池中允许的最大线程数。
  • keepAliveTime :当线程数大于核心数时,这是多于空闲线程在终止前等待新任务的最长时间。默认情况下,只有当线程池中的线程数大于 corePoolSize 时,keepAliveTime 才会起作用,直到线程池中的线程数不大于 corePoolSize
  • unit-keepAliveTime :参数时间的单位
  • workQueue :用于在执行任务之前保存任务的队列,这个队列只保存方法 Runnable 提交的任务 execute
  • threadFactory :执行器创建新线程时使用的工厂
  • handler :由于线程达到边界或者队列满时阻塞执行时使用的处理程序

当满足以下条件之一时,就会抛出异常 IllegalArgumentException :

  • corePoolSize < 0
  • maximumPoolSize <= 0
  • keepAliveTime < 0
  • corePoolSize > maximumPoolSize
  • NullPointerException :如果任务队列,工厂或者处理程序为空时
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号