线程池相关面试题

一、JDK自带的线程池有那些?

1.Executors.newCachedThreadPool()

创建一个可缓存线程的线程池,若线程池长度超出需要,可回收线程,若没有可回收,则新建线程

2.Executors.newFixedThreadPool()

创建定长线程池,可控制线程最大并发数,超出的线程在队列中等待

3.Executors.newScheduledThreadPool()

创建定长线程池,支持定时和周期性任务执行

4.Executors.newSingleThreadExecutor()

创建单线程化的线程池,用唯一的线程工作,保证任务按指定顺序执行

二、线程池中核心线程数、最大线程数、缓冲任务队列的关系?

线程池的工作机制:

  • 先使用核心线程执行任务
  • 当核心线程不足时,新任务入队列等待
  • 当队列满且线程数未达最大值时,增加非核心线程执行任务
  • 当队列满且线程数已达最大值时,触发拒绝策略处理新来的任务

三、为什么阿里巴巴不推荐使用JDK自带的线程池?

  1. 资源耗尽的风险
  2. 拒绝策略不明确
  3. 线程池参数优化
  4. 监控和调试难度
    阿里巴巴推荐使用ThreadPoolExrcutor手动创建线程池,为了增强系统稳定性,降低资源耗损风险,提高开发者对线程池的控制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值