线程池是什么,它的核心参数都有什么,有什么作用?

线程池是什么,它的核心参数都有什么,有什么作用?

线程池的作用打个比方来说: 就像是一个共享充电区,里面放着很多共享充电宝,当一堆人充完电后,再把充电宝还回去,这样有借有还,就保证了即使是5个充电宝也能供给很多人使用。线程池就是这么个意思,它的作用就是优化线程的管理和使用,减少在创建和销毁线程过程中的开销。

线程池有七个参数(部分参数作用会在下面一起配合线程池工作流程一起说)

  • corePoolSize 核心线程数目
  • maximumPoolSize 最大线程数目:最大线程数目 = 核心线程 + 非核心线程(救急线程)。
  • unit 时间单位:非核心线程(救急线程)的生存时间单位,如:秒、毫秒等。
  • keepAliveTime 生存时间:非核心线程(救急线程)的生存时间,如果在生成时间内没有新的任务,就会释放非核心线程(救急线程)。
  • workQueue 阻塞队列:当没有空闲的核心线程时,新加入的任务会被放进阻塞队列中,如果阻塞队列也满了,再新来的任务会使用非核心线程(救急线程)执行任务。
  • threadFactory 线程工厂:可以设置线程名字,线程工作性质。
  • handler 拒绝策略:当所有线程(核心线程和非核心线程)都在工作时,阻塞队列也放满了,会触发拒绝策略。
    • AbortPolicy:直接抛出异常(默认策略)。
    • CallerRunsPolicy:用调用者所在的线程来执行任务。意思就是如果是main方法,就用main来执行任务。
    • DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务。
    • DiscardPolicy:直接丢弃任务。

线程池工作流程
在这里插入图片描述

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值