线程调度原理
在任意时刻,只有一个线程占用cpu,处于运行状态,在多线程并发的情况下,轮流使用CPU的使用权,但是现在是多核的时代, 比如现在很多电脑或者手机是8核的,意思是有8个cpu,让这8个cpu去执行任务,如果是执行任务很多的情况下,cpu是轮流的方式去执行任务的,而这个CPU去执行任务是由cpu去负责调度的,
线程调度模型
线程调度模型有二类
第一类:分时调度
第二类: 抢占式调度
在Java中是使用第二种方式
Android线程调度
也是分成二部分
第一:nice值,是在Process类中定义的 它的值越小 优化及越高
/**
* Default scheduling policy
* @hide
*/
public static final int SCHED_OTHER = 0;
这是Android中默认的优化线看看Android中默认的优先级有哪些:
第二:cgroup
更严格的群组调度策略,保证前台线程更多的获取cpu使用权
注意点
线程过多会导致CPU切换频繁,降低线程运行效率,
线程优先级具有继承性 , 比如我A线程优先级是5 B线程继承了A,如果没有设置优先级的话 那么B线程的优先级也是5
android 异步方式
1:new Thread的方式来创建线程,这个方式简单 但是在具体的项目不适合,因为这种方式创建线程不具备服用,而