面试官:核心线程数为0时,线程池如何执行?

线程池基础
  • 线程池:Java中用于提升程序执行效率的并发编程技术。
  • 核心线程数 (corePoolSize):线程池中最小线程数,空闲时不销毁。
  • 最大线程数 (maximumPoolSize):线程池允许的最大线程数,等于核心线程数加临时线程数。
线程池执行流程
  1. 核心线程数判断:如果当前工作线程数小于核心线程数,新建线程执行任务。
  2. 任务队列判断:如果工作线程数超过核心线程数但任务队列未满,将任务加入队列。
  3. 最大线程数判断:如果任务队列已满且当前线程数小于最大线程数,新建线程执行任务。
  4. 执行拒绝策略:如果当前线程数达到最大线程数,执行拒绝策略。
核心线程数为0的特殊执行流程
  • 预期行为:任务直接加入队列,不立即执行。
  • 实际行为:任务加入队列后,线程池检查工作线程数,如果为0,会立即创建线程执行任务。
验证代码示例
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值