学习Glide是如何定制自己的Executors

2018-10-29  本文已影响4人  Goach

在看Glide代码的时候看到了GlideExecutor这个类,它主要为Glide提供4种创建线程池的方式,实现的方式和Java里面的Executors是一样的,都是通过代理模式+ExecutorService来实现。

既然是代理模式,那么代理类和被代理对象就会实现一个相同的接口,在这里这个接口就是ExecutorService,代理类就是GlideExecutor,被代理对象就是传进来的delegate这个对象。被代理对象主要通过ThreadPoolExecutor来创建的,创建的四种方式如下:

1、第一种方式

image

2、第二种方式

image

3、第三种方式

image

4、第四种方式

image

这些方式创建的代理对象都会通过代理类的构造方法传进来,然后在代理类里面进行调用。

另外,在创建newAnimationExecutor这个代理对象的时候有个很好用的方法,日后可以借鉴使用,获取cpu的个数

calculateBestThreadCount

image

通过这个例子深入的理解代理模式之后,在以后遇到对象类型有多个,但是做的事情可以用一个类来统一代理,那GlideExecutor这种实现方式的思想就是很好的选择。


Goach的开发日记.jpg
上一篇下一篇

猜你喜欢

热点阅读