线程池的阻塞队列以及饱和策略处理

工作中有个任务需要写多线程记录一下登陆日志,楼主之前没用过多线程,所以趁着这个机会了解下线程池

关于线程池的几个参数就不多说了,一搜索网上一大堆解释,还是贴一张源码图吧!

 

我很常规的设置了这些参数,核心线程数:5  最大线程数:Integer.MaxValue  存活时间:60s  阻塞队列:synBlockinQueue()

饱和策略重写的

后来code review的时候发现阻塞队列里面没有存储,就是直接线程过来那单个任务进行处理! 相当于说队列没有什么用处(newFixedThreadPool())使用的就是这种阻塞队列!  后来考录到了我们并发量不是很大,从性能 以及cpu的损耗上来看就选择了ArrayBlockingQueue,不需要动态扩容内存消耗小! 队列容量500 最大线程数:1000(暂定的) 

拒绝策略:  重写了拒绝策略

本来是想把被拒绝的线程的用户信息打印出来的,但是后来还是没打印出来! 自己理解的是线程池初始化的时候就需要初始化拒绝策略. 如果真的达到最大线程数并且无空闲线程 阻塞队列已满,进入拒绝策略的用户信息也是我们拿到的第一个线程处理的用户信息!  后来换了一种策略: 将被拒绝的线程再一次添加到阻塞队列当中,也不将此线程丢弃,如果添加失败之后再丢弃(简单粗暴!!!)

贴上一段拒绝策略的代码~

楼主比较渣,把大概的点记录了一下~

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值