一 ThreadPoolExecutor
ThreadPoolExecutor构造函数
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler){
}
corePoolSize:核心线程数
maximumPoolSize:最大线程数
keepAliveTime:超时时长,线程闲置超时便被回收
unit:时间单位
workQueue:缓冲任务队列
threadFactory:线程工厂,可为线程池创建新线程
handler:拒绝处理策略
二 Android中的线程池
- FixThreadPool:只有核心线程,数量固定,不会回收。
- SingleThreadPool:只有一个核心线程,不存在线程同步的问题。
- CachedThreadPool:只有非核心线程,线程数非常大。适合执行大批量耗时较少的任务。
- ScheduledThreadPool:核心线程数固定,非核心线程没有限制(空闲时会被立即回收)。用于定时任务以及有固定周期的重复任务。