前言
线程优化一直是启动优化中的一个必不可少的项目。作为一个 Android 程序员,你肯定希望应用启动的时候,火力全开,线程池拉满,每一个 CPU 核心满载而行。
可你把线程池拉满的时候,启动时长就一定会降低吗?
结果显然是否定的,之前我在进行启动优化的时候,就遇到了类似的问题。我引入了有向无环图类似的启动库后,又将线程池的数量设置为:
CPU核心数 * 2 + 1
看似没什么问题,后续启动时长居然还增长了一点点。
为什么会出现这样的问题?我们今天就好好聊聊。
一、做个实验
先做个实验,在应用启动过程中,主要做了两步:
- 主线程循环 10w 次,做一些简单的计算
- 线程池做一些异步任务,读取文件,然后将读取到的数据写入数据库,这个异步任务提交了 1000 次