Android App 线程优化

01.创建Thread弊端

  • 直接创建Thread实现runnable方法的弊端
    • 大量的线程的创建和销毁很容易导致GC频繁的执行,从而发生内存抖动现象,而发生了内存抖动,对于移动端来说,最大的影响就是造成界面卡顿
    • 线程的创建和销毁都需要时间,当有大量的线程创建和销毁时,那么这些时间的消耗则比较明显,将导致性能上的缺失

02.为何要用线程池

  • 为什么要用线程池
    • 重用线程池中的线程,避免频繁地创建和销毁线程带来的性能消耗;有效控制线程的最大并发数量,防止线程过大导致抢占资源造成系统阻塞;可以对线程进行一定地管理。
  • 使用线程池管理的经典例子
    • RxJava,RxAndroid,底层对线程池的封装管理特别值得参考

03.那些地方使用线程池

  • 关于线程池,线程,多线程的具体内容
    • 该项目中哪里用到频繁new Thread
      • 保存图片[注意,尤其是大图和多图场景下注意耗时太久];某些页面从数据库查询数据;设置中心清除图片,视频,下载文件,日志,系统缓存等缓存内容
      • 使用线程池管理库好处,比如保存图片,耗时操作放到子线程中,处理过程中,可以检测到执行开始,异常,成功,失败等多种状态。