admin管理员组文章数量:1623789
在Android开发过程中,通常会涉及使用线程实现异步任务,而不同任务有不同权重,这就需要我们为不同的线程设置优先级。Android提供了两种方法,让我们可以实现线程优先级设置。
我们无法控制进程,但是可以控制进程中的线程的优先级。
两种方法
- Thread.setPriority(Thread.XXXXX_PRIORITY);
- android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_XXXXX);
用法示例
// 示例1:使用Thread
Runnable r = ....
Thread thread = new Thread(r);
thread.setPriority(Thread.MAX_PRIORITY);
// 示例2:使用Process
new Thread(new Runnable() {
@Override
public void run() {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_MORE_FAVORABLE);
}
}).start();
有哪些优先级?
Process优先级:priority:负20 ------> +19 ,对应最高优先级------> 最低优先级。
THREAD_PRIORITY_DEFAULT, 默认的线程优先级,值为0。
THREAD_PRIORITY_LOWEST, 最低的线程级别,值为19。
THREAD_PRIORITY_BACKGROUND 后台线程建议设置这个优先级,值为10。
THREAD_PRIORITY_FOREGROUND 用户正在交互的UI线程,代码中无法设置该优先级,
系统会按照情况调整到该优先级,值为-2。
THREAD_PRIORITY_DISPLAY 也是与UI交互相关的优先级界别,但是要
比THREAD_PRIORITY_FOREGROUND优先,代码中无法设置,
由系统按照情况调整,值为-4。
THREAD_PRIORITY_URGENT_DISPLAY 显示线程的最高级别,用来处理绘制画面和检索输入事件,
代码中无法设置成该优先级。值为-8。
THREAD_PRIORITY_AUDIO 声音线程的标准级别,代码中无法设置为该优先级,值为 -16。
THREAD_PRIORITY_URGENT_AUDIO 声音线程的最高级别,优先程度较THREAD_PRIORITY_AUDIO要
高。代码中无法设置为该优先级。值为-19。
THREAD_PRIORITY_MORE_FAVORABLE 相对THREAD_PRIORITY_DEFAULT稍微优先,值为-1。
THREAD_PRIORITY_LESS_FAVORABLE 相对THREAD_PRIORITY_DEFAULT稍微落后一些,值为1。
Java优先级:priority:1 --------------> 10,最低优先级 -----------> 最高优先级。
MAX_PRIORITY, 相当于android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY,值为10。
MIN_PRIORITY, 相当于android.os.Process.THREAD_PRIORITY_LOWEST,值为0。
NORM_PRIORITY, 相当于android.os.Process.THREAD_PRIORITY_DEFAULT,值为5。
该用谁?
建议使用Process.setThreadPriority(int priority)
注意事项
- 两个优先级设置方法是相对独立,互不影响的。
举例:使用
Thread.setPriority(5);
Process.setThreadPriority(8)
Thread.getPriority()得到的值不会改变,依旧是5而不是8。 - 分析ANR 对应的日志文件 /data/anr/traces.txt 时,会遇到两个权限
参考链接:
https://blog.csdn/caonima0001112/article/details/50379738
版权声明:本文标题:Android之设置线程优先级的两种方法Thread.setPriority和Process.setThreadPriority 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728897307a1178575.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论