线程priority学习

 

代码:

package com.hello.test4;

import android.app.Activity;
import android.os.Bundle;
import android.os.Debug;
import android.util.Log;

public class Hello4Activity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        long id1 = Thread.currentThread().getPriority();
        Log.v("Hello4Activity", "mainid=="+Thread.currentThread().getPriority());
        t1.setPriority(Thread.MAX_PRIORITY);
        t1.start();
        try {
            t1.join();
            Log.v("Hello4Activity", "1id=="+Thread.currentThread().getPriority());
            Log.v("Hello4Activity", "t1 --id=="+t1.getPriority());
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //t2.setPriority(Thread.MIN_PRIORITY);
        t2.setPriority(7);
        t2.start();
        try {
            t2.join();
            Log.v("Hello4Activity", "2id=="+Thread.currentThread().getPriority());//在main thread里面打印,打印的是main thread的priority
            Log.v("Hello4Activity", "t2 --id=="+t2.getPriority());//指定了t2,打印t2的priority。
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    Thread t1 = new Thread(new Runnable() {

        public void run() {
            // TODO Auto-generated method stub
            Log.v("Hello4Activity", "#####t1");
            Log.v("Hello4Activity", "t1id=="+Thread.currentThread().getPriority());
        }

    });
    Thread t2 = new Thread(new Runnable() {//一个线程只存在于其run方法中!

        public void run() {
            // TODO Auto-generated method stub
            Log.v("Hello4Activity", "#####t2");
            Log.v("Hello4Activity", "t2id=="+Thread.currentThread().getPriority());
        }

    });
}

 

 

在main thread里面打印

Log.v("Hello4Activity", "id=="+Thread.currentThread().getPriority());

得到的是main thread的priority,在其他线程的run方法里打印此句,得到的是此线程的priority

 

打印结果:

 

01-01 17:10:43.656: V/Hello4Activity(1640): mainid==5
01-01 17:10:43.656: V/Hello4Activity(1640): #####t1
01-01 17:10:43.656: V/Hello4Activity(1640): t1id==10     //在Thread t1中打印

01-01 17:10:43.656: V/Hello4Activity(1640): 1id==5        //在main thread中打印
01-01 17:10:43.656: V/Hello4Activity(1640): t1 --id==10    //指定t1 thread的priority打印
01-01 17:10:43.657: V/Hello4Activity(1640): #####t2
01-01 17:10:43.657: V/Hello4Activity(1640): t2id==7
01-01 17:10:43.657: V/Hello4Activity(1640): 2id==5
01-01 17:10:43.657: V/Hello4Activity(1640): t2 --id==7

 

 

若不主动设置线程优先级,那么这些线程的优先级都是相同的,都是normal,5,log信息如下:

01-01 17:17:29.754: V/Hello4Activity(1898): mainid==5
01-01 17:17:29.755: V/Hello4Activity(1898): #####t1
01-01 17:17:29.755: V/Hello4Activity(1898): t1id==5
01-01 17:17:29.756: V/Hello4Activity(1898): 1id==5
01-01 17:17:29.756: V/Hello4Activity(1898): t1 --id==5
01-01 17:17:29.757: V/Hello4Activity(1898): #####t2
01-01 17:17:29.757: V/Hello4Activity(1898): t2id==5
01-01 17:17:29.758: V/Hello4Activity(1898): 2id==5
01-01 17:17:29.758: V/Hello4Activity(1898): t2 --id==5

转载于:https://www.cnblogs.com/snowdrop/articles/2441843.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值