并发线程池

常用线程池执行器

JDK自带线程池执行器(ThreadPoolExecutor)
spring封装的线程池执行器(ThreadPoolTaskExecutor)
后者其实是对前者的一个封装

JDK四个内置线程(池)

如下,不过实际一般使用自定义的线程池,视服务器情况而定。

  1. newFixedThreadPool:创建一个定长线程池,超出的任务会在队列中等待。
  2. newCachedThreadPool:创建一个可缓存线程池,空闲了可以回收,少了可以创建。最大大小为int类型最大值(Interger. MAX_VALUE,约21亿)。
  3. newSingleThreadExecutor:创建一个单工作线程,可以保证执行顺序。
  4. newScheduledThreadPool:创建一个定长线程池,支持定时及周期性任务执行。

线程池参数

  1. 核心线程数 corePoolSize
  2. 最大线程数 maximumPoolSize
  3. 空闲线程存活时间 keepAliveTime
  4. 时间单位 unit
  5. 任务队列 workQueue
  6. 拒绝策略 rejectedExecutionHandler

拒绝策略

  1. AbortPolicy:拒绝任务并抛出异常,会丢失数据。
  2. DiscardPolicy:仅拒绝任务,不抛异常,会丢失数据。
  3. DiscardOldestPolicy:放弃任务队列中最前面的一个未处理的任务,然后重新添加该新任务,会丢失数据。
  4. CallerRunsPolicy:拒绝任务,让调用的上级线程自己执行,不会丢失数据,但会让上级线程压力增大。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值