在Android中,可以使用ThreadPoolExecutor类来构造线程池。其核心参数包括:
corePoolSize(核心线程数):线程池维护线程的最少数量。
maximumPoolSize(最大线程数):线程池允许的最大线程数。
keepAliveTime(闲置线程保活时长):当线程数大于核心线程数时,这是多余空闲线程在终止前等待新任务的最长时间。
keepAliveTimeUnit(保活时长单位):keepAliveTime参数的时间单位。
workQueue(阻塞队列):用于存放待执行的任务。
threadFactory(线程工厂):用于创建新线程。
rejectedExecutionHandler(任务溢出的处理策略):当线程池和队列都满了时,对新任务的处理策略。
示例代码:
ThreadPoolExecutor executor = new ThreadPoolExecutor(
5, // 核心线程数
10, // 最大线程数
1, // 闲置线程保活时长
TimeUnit.MINUTES, // 保活时长单位
new LinkedBlockingDeque<>(50), // 阻塞队列
new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
return new Thread(r);
}
},
new ThreadPoolExecutor.AbortPolicy() // 任务溢出的处理策略
);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。