Glide里面的几个线程池

一.概述

在日常开中,如果经常使用到线程的话,如何快捷创建和关闭回收线程是一件较为麻烦的事情,因此 阿里巴巴的Java规范插件 一直都是建议使用线程池来管理线程

使用线程池有那些好处?

  • 复用存在的线程,减少线程的创建,减少线程的开销,进一步提高了效率
  • 通过阻塞队列来控制最大的线程并发数,让内存等消耗限制在一个合理的范围内

二.线程池的相关参数

我们要怎么使用线程池呢?我们先来看下线程池参数最全面的构造方法吧:

    /**
     * 创建一个线程池
     * 
     *
     * @param corePoolSize  核心线程数量,当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中
     *                      当线程池里面的线程数量超过corePoolSize就会启动回收操作
     *
     * @param maximumPoolSize 线程池里面的最大线程数
     *       
     * @param keepAliveTime  表示线程空闲时多久才将其回收,只有当线程池里面的线程数量超过corePoolSize才会生效,
     *                       它会让线程池里面的线程数量尽量等于或接近corePoolSize
     *       
     * @param unit keepAliveTime的时间单位
     *
     * @param workQueue 阻塞队列,用来存储等待执行的任务,等待线程池里面有空闲的线程来执行任务     
     *      
     * @param threadFactory 用来生产线程的工厂
     *        
     * @param handler 当任务无法处理时的策略
     *       
     */
    public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              ThreadFactory threadFactory,
                              RejectedExecutionHandler handler)

在明白了相关参数配置后,我们就可以开始依据自己需求来定制线程池了,可能你还是有点无从下手的感觉,没事,我们可以先看下其他人是怎么定制的,比方说看下 Glide 是怎么定制自己内部的线程池的

三.Glide 中定制的几个线程池

我们可以在 GlideGlideExecutor 里面找到它定制的线程池,Glide 定制了 4 个 线程池

1.newDiskCacheExecutor

这是用于执行本地缓存任务的线程池

public static GlideExecutor newDiskCacheExecutor(
      int threadCount, String name, UncaughtThrowableStrategy uncaughtThrowableStrategy) {
   
    return new GlideExecutor(
        new ThreadPoolExecutor(
            threadCount /* corePoolSize,数值为1 */,
            threadCount /* maximumPoolSize,数值为1 */,
            0 /* keepAliveTime为0 */,
            TimeUnit.MILLISECONDS,
            /*无序的阻塞队列,先进先出 */
            new PriorityBlockingQueue<Runnable
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值