OkHttp分发器线程池

来看看线程池的源码,主要的参数有,核心线程数 ,最大线程数,闲置时间,任务队列,线程创建工厂等等。核心线程数是指线程池会一直维护的线程个数,让这些线程一直属于存活的状态,不会使他消亡。最大线程数顾名思义是指线程池可以同时执行的最大数量,闲置时间是指空闲超过闲置时间的超过核心线程数的线程会被回收,任务队列则是线程池中的重点,我们进入ThreadPoolExecutor方法,可以看到任务队列需要传一个BlockingQueue,这里okhttp使用了

SynchronousQueue,SynchronousQueue是一种没有容量的容器,添加任务一定会失败,失败的话,则会比较最大线程数,如果小于最大线程数,则直接开启新线程。正好满足OkHttp无需等待高并发的特点。

简单总结一下:

当一个任务通过execute(Runnable)方法添加到线程池时:

        线程数量小于corePoolSize,新建线程(核心)来处理被添加的任务;

        线程数量大于corePoolSize,新任务被添加到等待队列,添加失败;

                线程数量小于maximumPoolSize,新建线程执行新任务;

                线程数量等于maximumPoolSize,使用RejectedExecutionHandler拒绝策略


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值