线程优化

168 阅读1分钟

线程过多的危害

  1. 每个线程至少占用1M的内存。过多会引起OOM。32位手机尤其明显。
  2. HandlerThread创建Loop会持有至少两个文件描述符,导致文件描述符不足的崩溃。
  3. 线程过多会出现频繁的上下文切换。
  4. 启动阶段,线程并发过多,CPU占满。影响主线程。

解决方案

  1. 野线程接入线程池。
  2. HandlerThread增加销毁时机。
  3. 同类型线程池合并。

如何排查

通过工具,例如Xposed

Hook线程的创建和销毁,记录线程名称,堆栈和存活时间。