前言:
今天来学习一下ThreadPoolExecutor,然后结合使用场景定义一个按照线程优先级来执行的任务的线程池。
线程管理相关文章地址:
- Android线程管理之Thread使用总结
- Android线程管理之ExecutorService线程池
- Android线程管理之ThreadPoolExecutor自定义线程池
- Android线程管理之AsyncTask异步任务
- Android线程管理之ThreadLocal理解及应用场景
ThreadPoolExecutor
ThreadPoolExecutor线程池用于管理线程任务队列、若干个线程。
1.)ThreadPoolExecutor构造函数
ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue) ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue workQueue,RejectedExecutionHandler handler) ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,RejectedExecutionHandler handler) ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory, RejectedExecutionHandler handler)
corePoolSize: 线程池维护线程的最少数量
maximumPoolSize:线程池维护线程的最大数量
keepAliveTime: 线程池维护线程所允许的空闲时间
unit: 线程池维护线程所允许的空闲时间的单位
workQueue: 线程池所使用的缓冲队列
threadFactory:线程池用于创建线程
handler: 线程池对拒绝任务的处理策略
2.)创建新线程
默认使用Executors.defaultThreadFactory(),也可以通过如下方式