线程池的七个基本参数

线程池的七个参数通常指在使用ThreadPoolExecutor创建线程池时设置的参数

  1. corePoolSize(核心线程数):线程池中始终保持运行的线程数量。线程池刚创建时,里面没有线程,当调用 execute() 方法添加一个任务时,如果正在运行的线程数量小于 corePoolSize,则会马上创建新线程并运行该任务。

  2. maximumPoolSize(最大线程数):线程池允许创建的最大线程数量。当核心线程数已满,且工作队列已满,同时线程池还没达到最大线程数时,会创建一个新线程来处理任务。

  3. keepAliveTime(空闲线程存活时间):当可被回收的线程(如设置了 allowCoreThreadTimeout=true 的核心线程或大于核心线程数的非核心线程)的空闲时间大于 keepAliveTime 时,该线程会被回收。

  4. unit(时间单位):用于指定 keepAliveTime 的时间单位,例如秒、分钟等。

  5. workQueue

    (工作队列):新任务被提交后,会先添加到工作队列中,任务调度时再从队列中取出任务。常见的工作队列有:

    • ArrayBlockingQueue:数组结构的有界阻塞队列,遵循先进先出(FIFO)原则。

    • LinkedBlockingQueue:链表结构的近似无界阻塞队列(最大容量为 Integer.MAX_VALUE)。

    • SynchronousQueue:容量为 0 的同步队列,添加任务必须等待取出任务。

    • PriorityBlockingQueue:无界的优先阻塞队列,可通过指定比较器实现元素的优先级排序。

    • DelayQueue:无界的延时队列,元素具有过期时间,只有过期的元素才能被取出。

  6. threadFactory(线程工厂):用于创建新线程,可以设定线程的名称、是否为守护线程等属性。

  7. handler(拒绝策略):当线程池线程数已满,且工作队列达到限制,新提交的任务需要使用拒绝策略进行处理。新提交的任务需要使用拒绝策略进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值