Android线程调度原理剖析

278 阅读1分钟

线程调度原理

任意时刻,只有一个线程占用CPU,处于运行状态

多线程并发:轮流获取CPU使用权

JVM负责线程调度:按照特定机制分配CPU使用权

线程调度模型

分时调度模型:轮流获取、均分CPU时间

枪占式调度模型:优先级高的获取,JVM采用

Android线程调度

nice值

Process中定义

值越小,优先级越高

默认是THREAD_PRIORITY_DEFAULT,0

cgroup

更严格的群组调度策略

保证前台线程可以获取到更多的CPU

注意点

线程过多会导致CPU频繁切换,降低线程运行效率

正确认识任务重要性决定哪种优先级

优先级具有继承性(比如在线程A中创建线程B,线程B的优先级和线程A的优先级一样)