改变线程优先级:

改变线程优先级:

(1)每个线程执行时都具有一定的优先级,优先级高的获得较多的执行机会,优先级低的线程则获得较少的执行机会。
(2)每个线程的优先级都与创建它的父线程优先级相同,在默认情况下,main线程具有普通优先级,而main线程创建的子线程也具有普通优先级。
(3)Thread提供了setPriority(int newPriority ) getPriority()方法来设置和返回指定线程的优先级,其中setPriority()方法的参数可以是一个整数,范围是0-10,之间,也可以使用Thread类的如下三个常量:
MAX_PRIORITY 其值是10
MIN_PRIORITY 其值是1
NORM_PRIORITY 其值是5

程序实例:使用setPriority()方法来改变主线程的优先级,并使用该方法改变了两个线程的优先级,从而看到优先级高德线程获得更多的执行机会。
改变线程优先级:

(1)每个线程执行时都具有一定的优先级,优先级高的获得较多的执行机会,优先级低的线程则获得较少的执行机会。
(2)每个线程的优先级都与创建它的父线程优先级相同,在默认情况下,main线程具有普通优先级,而main线程创建的子线程也具有普通优先级。
(3)Thread提供了setPriority(int newPriority ) getPriority()方法来设置和返回指定线程的优先级,其中setPriority()方法的参数可以是一个整数,范围是0-10,之间,也可以使用Thread类的如下三个常量:
MAX_PRIORITY 其值是10
MIN_PRIORITY 其值是1
NORM_PRIORITY 其值是5

程序实例:使用setPriority()方法来改变主线程的优先级,并使用该方法改变了两个线程的优先级,从而看到优先级高德线程获得更多的执行机会。

public class PriorityTest  extends Thread {
     //定义一个带参数的构造器,用于指定线的name
     public PriorityTest(String name){
           super(name);

     }

     public void run(){
           for (int i = 0; i < 50; i++) {
                System.out.println(getName()+",其优先级是:"+ getPriority()+",循环变量的值为:"+i);
           }
     }


     public static void main(String[] args) {
           //改变主线程的优先级
           Thread.currentThread().setPriority(6);
           for (int i = 0; i < 30; i++) {
                if(i==10){
                     PriorityTest  low  =new PriorityTest("低级");
                     low.start();
                     System.out.println("创建之初的优先级:"+low.getPriority());
                     //设置该线程为最低优先级
                     low.setPriority(MIN_PRIORITY);
                }

                if(i==20){
                     PriorityTest  high=new PriorityTest("高级");
                     high.start();
                     System.out.println("创建之初的优先级:"+high.getPriority());
                     //设置该线程为最高优先级
                     high.setPriority(MAX_PRIORITY);
                }
           }
     }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值