线程池(ThreadPoolExecutor)

线程池创建:

 

流程举例解释:

假如创建线程池核心线程数10个,最大线程数20个,阻塞对列长度为10。当50个任务同时出现时,1-10个任务交个10个核心线程处理,11-20的任务到工作队列排队等待执行。21-30的任务交给10个非核心线程执行。31-50的任务出发拒绝执行策略。

参数解释:

CorePoolSize

核心线程数

maxmumPoolSize

最大线程数

keepAliveTime

非核心线程数空闲存活时间

unit

时间单位

workQueue

工作队列(阻塞队列)

threadFactory

线程工厂(创建线程)

handler

拒绝处理任务的策略

  1. ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出异常
  2. ThreadPoolExecutor.DiscardPolicy:丢弃任务但是不抛出异常
  3. ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后尝试加入到队列里面执行任务。
  4. ThreadPoolExecutor.CallerRunsPolicy:由调用线程处理该任务

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值