线程池线程大小

来源:3-8 异步优化详解

黄智1

2020-04-15

老师在讲解设置线程池核实时,您介绍的是参考AsyncTask的设置方法,虽然AsyncTask是根据当前设备拥有的核数来确定,但是AsyncTask又是根据原理确定这个公式的呢?如何确定这个公式是最优的
Math.max(2,Math.min(CPU_COUNT-1),4)

同时在Android10的代码中 AsyncTask的默认线程池直接设置为了固定值
图片描述

写回答

1回答

随风绽放

2020-04-20

同学你好,确实是这样的,同时对于这两个值的变更源码中也给予了说明,确实是换策略了。

Math.max(2,Math.min(CPU_COUNT-1),4),这里为什么说它优可以参考呢。这样计算出来的线程池核心数是取决于CPU核心数的,一个hard code更会导致不同机型上的表现差异。


0
0

Top团队大牛带你玩转Android性能分析与优化

由表及里学到国内Top团队对性能问题的体系化解决方案

1696 学习 · 532 问题

查看课程