更多问答 >>
-
每日一问 | Java中匿名内部类写成 lambda,真的只是语法糖吗?
2021-01-11 00:00 -
每日一问 | RxJava中Observable、Flowable、Single、Maybe 有何区别?
2021-01-03 20:34 -
每日一问 | View invalidate() 相关的一些细节探究~
2020-12-27 22:38 -
每日一问 | Call requires API level 23 (current min is 14) 扫描出来的原理是?
2020-12-27 22:39 -
每日一问 | 当Unsafe遇上final,超神奇的事情发生了?
2020-11-02 00:16
知识盲区了。。。
网上找到这几篇文章:
从Java到JVM到OS线程的优先级 Java线程优先级深入jvm理解安卓线程学习四 之 线程优先级和调度了解Java线程优先级Android平台上的进程调度探讨Linux 线程调度与优先级总结一下:
Thread.setPrioriy
和Process.setThreadPriority
有何区别?二者最终都是通过平台提供的setpriority
函数来实现,只是Process.setThreadPriority
在调用setpriority
之前,还会设置调度策略(set_sched_policy
),共有三种: SCHED_OTHER 、SCHED_FIFO、SCHED_RR ;更推荐用哪种方式?
更推荐使用Process.setThreadPriority
,可能是因为Java出于平台兼容性的考虑,把线程优先级范围定义为1 ~ 10,这并不能完全对应每一个平台的各个等级的,比如在Linux(Android)上,1 ~ 10只能对应 -5 ~ 4,但人家实际取值范围是 -20 ~ 19,所以使用Process.setThreadPriority
的话,会更加贴合系统提供的优先级。期待群主的自问自答。。知识盲区