java多线程编程:ThreadPoolExecutor类

ThreadPoolExecutor

Constructor Detail

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

在这里插入图片描述

ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> 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 :如果任务队列,工厂或者处理程序为空时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值