ThreadPoolExecutor是在android中使用线程池时候,用到的类。
为什么要使用线程池?
1、线程的创建和销毁,需要占用内存资源,对性能影响很大。
2、线程创建的数量太多时候,反而执行速度会下降。比如4核cpu的手机,最好开4*2+1=9个线程,是执行速度最快的。
线程池的4个构造方式,其中3个构造参数少的方法,最终都调用都是构造参数最多的那个。
通常情况下,我们使用jdk已经给我们预制的4个创建线程池的方法。
Executors.newFixedThreadPool():创建一个定长的线程池,如果超出,则线程进入等待状态
Executors.newSingleThreadExecutor():创建只有一个线程的线程池,保证所有的线程按照顺序执行
Executors.newCachedThreadPool():创建一个可变数量的线程池,线程池中数量小于设置的最大数量时候,则会继续创建线程。
Executors.newScheduledThreadPool():定长的线程池,执行定时任务。
这4个方法中,前3个方法,其实都调用的是ThreadPoolExecutor的构造方法。