gpt4 book ai didi

android - Thread.setPriority() 和 android.os.Process.setThreadPriority() 有什么区别

转载 作者:IT老高 更新时间:2023-10-28 13:15:39 37 4
gpt4 key购买 nike

如果我有这样的代码:

Runnable r = ...;

Thread thread = new Thread(r);
thread.setPriority((Thread.MAX_PRIORITY + Thread.NORM_PRIORITY) / 2);

或者...

    Runnable r = ...
Thread thread = new Thread( new Runnable() {
public void run() {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_MORE_FAVORABLE);
r.run();
}
});

需要/首选的 android.os.Process 方式吗?

为什么是首选/必需的 android.os.Process 方式?

据我所知,这没有明确记录。

最佳答案

当前的 Dalvik 实现似乎像你说的那样将 Java 线程一一映射到底层 linux 系统 PTHREADs。所有应用的所有线程都属于系统上的同一个线程组,因此每个线程都与所有应用的所有线程竞争。

所以目前 Thread.setPriority 实际上应该与 Process.setThreadPriority 做同样的事情,使用较小的 Java 优先级比例。优先级的映射定义在 kNiceValuesvm/Thread.c

关于android - Thread.setPriority() 和 android.os.Process.setThreadPriority() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5198518/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com