概述
1) android.os.Process.setThreadPriority (int priority)
或
android.os.Process.setThreadPriority (int tid, int priority)
priority:【-20, 19】,高优先级 -> 低优先级.
(2)java.lang.Thread.setPriority (int priority)
priority:【1, 10】,低优先级 -> 高优先级.
测试后发现,使用android自己的API(第1种方法)设置的优先级,对线程调度影响显著.
------------------------------------------------
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Process;
- import android.util.Log;
- public class TestThreadPriority extends Activity {
- private static final String TAG = "TestThreadPriority";
- private boolean mNeedExit = false;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- MyThread a = new MyThread("Thread A");
- a.setOSPriority(Process.THREAD_PRIORITY_LOWEST); // 19
- a.setPriority(Thread.MAX_PRIORITY); // 10
- MyThread b = new MyThread("Thread B");
- b.setOSPriority(Process.THREAD_PRIORITY_URGENT_AUDIO); // -19
- b.setPriority(Thread.MIN_PRIORITY); // 1
- a.start();
- b.start();
- }
- @Override
- public void onBackPressed() {
- mNeedExit = true;
- super.onBackPressed();
- }
- private class MyThread extends Thread {
- private int mOSPriority = Process.THREAD_PRIORITY_DEFAULT;
- private int mLoopCount = 0;
- public MyThread(String threadName) {
- super(threadName);
- }
- public void setOSPriority(int p) {
- mOSPriority = p;
- }
- @Override
- public void run() {
- Process.setThreadPriority(mOSPriority);
- while (!mNeedExit) {
- mLoopCount++;
- Math.log(Math.random() * 1000); // calculation test
- Log.d(TAG,
- new StringBuilder().append(getName())
- .append(" os priority: ").append(mOSPriority)
- .append(" java priority: ")
- .append(getPriority()).append(" loop count: ")
- .append(mLoopCount).toString());
- }
- Log.d(TAG,
- new StringBuilder().append(getName()).append(" exiting...")
- .append(" os priority: ").append(mOSPriority)
- .append(" java priority: ").append(getPriority())
- .append(" loop count: ").append(mLoopCount)
- .toString());
- }
- }
- }
最后
以上就是美好皮带为你收集整理的android 设置线程优先级 两种方式的全部内容,希望文章能够帮你解决android 设置线程优先级 两种方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复