如果我有以下代码:
Runnable r = ...;
Thread thread = new Thread(r);
thread.setPriority((Thread.MAX_PRIORITY + Thread.NORM_PRIORITY) / 2);
Run Code Online (Sandbox Code Playgroud)
要么 ...
Runnable r = ...
Thread thread = new Thread( new Runnable() {
public void run() {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_MORE_FAVORABLE);
r.run();
}
});
Run Code Online (Sandbox Code Playgroud)
是 android.os.Process方式需要/首选吗?
为什么 android.os.Process方式首选/必需?
据我所知,目前尚未明确记录.
dro*_*nus 33
当前的Dalvik实现似乎将Java Threads ony映射到底层的Linux系统PTHREAD就像你说的那样.所有应用程序的所有线程都属于系统上的同一个线程组,因此每个线程都与所有应用程序的所有线程竞争.
因此,目前Thread.setPriority实际应该这样做Process.setThreadPriority,使用较小的Java优先级标度,优先级的映射kNiceValues在vm/Thread.c中定义
谷歌使用
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
Run Code Online (Sandbox Code Playgroud)
在Volley的Network Dispatcher线程中,我相信使用Process.setThreadPriority()是可行的方法.
| 归档时间: |
|
| 查看次数: |
34886 次 |
| 最近记录: |