一、线程调度原理分析
线程调度原理
1 | 1.任意时刻,只有一个线程占用CPU,处于运行状态 |
线程调度模型
1 | 1.分时调度模型:轮流获取、均分CPU时间 |
Android线程调度
1 | 1.nice值 |
注意点
1 | 1.线程过多会导致CPU频繁切换,降低线程运行效率 |
二、android异步方式汇总
Thread
1 | 最简单、常见的异步方式 |
HandlerThread
1 | 自带消息循环的线程 |
IntentService
1 | 继承自Service在内部创建HandlerThread |
AsyncTask
1 | Android提供的工具类 |
线程池
1 | Java提供的线程池 |
RxJava
1 | 由强大的 Scheduler 集合提供 |
异步方式总结
1 | 推荐度:从前往后排列 |
三、线程优化实战
线程使用准则
1 | 1.严禁直接 new Thread |
1 | //ThreadPoolUtils工具类 |
1 | //使用示例 |
四、如何锁定线程创建者
锁定线程创建背景
1 | 1.项目变大之后收敛线程 |
锁定线程创建方案
1 | 1.分析 |
1 | DexposedBridge.hookAllConstructors(Thread.class, new XC_MethodHook() { |
五、线程收敛优雅实现
线程收敛常规方案
1 | 1.根据线程创建堆栈考量合理性,使用统一线程库 |
基础库怎么使用线程
1 | 1.直接依赖线程库 |
基础库优雅使用线程
1 | 1.基础库内部暴露API:setExecutor |
1 | package com.optimize.performance.utils; |
统一线程库
1 | 1.区分任务类型:IO、CPU密集型 |
1 | package com.optimize.performance.async; |
六、问题
线程使用为什么会遇到问题
1 | 1.项目发展阶段 |
怎么在项目中对线程进行优化
1 | 1.线程收敛 |