`
gjhappyyy
  • 浏览: 255551 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Android线程优先级

阅读更多

最近项目中经常用到设置线程的优先级。在网上查了一下资料。

对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要。Android在线程方面主要使用的是Java本身的Thread类,我们可以在Thread或Runnable接口中的run方法首句加入

 

Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); //设置线程优先级为后台,这样当多个线程并发后很多无关紧要的线程分配的CPU时间将会减少,有利于主线程的处理,有以下几种:

int THREAD_PRIORITY_AUDIO //标准音乐播放使用的线程优先级

int THREAD_PRIORITY_BACKGROUND //标准后台程序

int THREAD_PRIORITY_DEFAULT // 默认应用的优先级

int THREAD_PRIORITY_DISPLAY //标准显示系统优先级,主要是改善UI的刷新

int THREAD_PRIORITY_FOREGROUND //标准前台线程优先级

int THREAD_PRIORITY_LESS_FAVORABLE //低于favorable

int THREAD_PRIORITY_LOWEST //有效的线程最低的优先级

int THREAD_PRIORITY_MORE_FAVORABLE //高于favorable

int THREAD_PRIORITY_URGENT_AUDIO //标准较重要音频播放优先级

int THREAD_PRIORITY_URGENT_DISPLAY //标准较重要显示优先级,对于输入事件同样适用。

 

 

优先级范围是 -20 (高) 到 +19 (低). 不要选得 太高

最好使用预先定义在 android.os.Process 的constants : Process.THREAD_PRIORITY_LOWEST = 19

Process.THREAD_PRIORITY_BACKGROUND = 5

Process.THREAD_PRIORITY_DEFAULT = 0

Process.THREAD_PRIORITY_FOREGROUND = -5

Process.THREAD_PRIORITY_DISPLAY = -10

Process.THREAD_PRIORITY_URGENT_DISPLAY = -15

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics