Java线程-线程的优先级

多线程的实际运行中,所有代码实际上都存在优先级,优先级高的线程可能先被执行,但不是一定!
设置某个线程优先级可以方法:
public final void setPriority(int newPriority);
其参数是定义了优先级三个级别的全局常量:
1. 最高:public final static int MAX_PRIORITY;
2. 中等:public final static int NORM_PRIORITY;
3. 最低:public final static int MIN_RRIORITY;

package com.mldn;

 

class Thh implements Runnable

{

public void run()

{

for (int i = 0; i

{

try

{

// 让线程休眠2s,并发效果好!

Thread.sleep(2000);

}

catch (InterruptedException e)

{

System.out.println(“线程中断!”);

return; // 结束方法,返用处

}

 

System.out.println(Thread.currentThread().getName() + “线程正在进行!”);

}

}

}

 

public class ThreadPriority

{

public static void main(String[] args)

{

Thh th = new Thh();

 

Thread thread1 = new Thread(th, “线程A”);

Thread thread2 = new Thread(th, “线程B”);

Thread thread3 = new Thread(th, “线程C”);

 

thread1.start();

thread2.start();

thread3.start();

 

thread1.setPriority(Thread.NORM_PRIORITY); // 设置线程A正常优先级,注意:全局常量的用法;

thread2.setPriority(Thread.MIN_PRIORITY); // 设置线程B最低优先级

thread3.setPriority(Thread.MAX_PRIORITY); // 设置线程C最高优先级

}

}

/*

administrator@xu-desktop:~$ javac -d . ./work/ThreadPriority.

administrator@xu-desktop:~$ com.mldn.ThreadPriority

线程A线程正在进行!

线程C线程正在进行!

线程B线程正在进行!

线程A线程正在进行!

线程B线程正在进行!

线程C线程正在进行!

线程A线程正在进行!

线程C线程正在进行!

线程B线程正在进行!

线程A线程正在进行!

线程B线程正在进行!

线程C线程正在进行!

线程A线程正在进行!

线程C线程正在进行!

线程B线程正在进行!

线程A线程正在进行!

线程B线程正在进行!

线程C线程正在进行!

线程A线程正在进行!

线程C线程正在进行!

线程B线程正在进行!

线程A线程正在进行!

线程B线程正在进行!

线程C线程正在进行!

线程A线程正在进行!

线程B线程正在进行!

线程C线程正在进行!

线程C线程正在进行!

线程A线程正在进行!

线程B线程正在进行!

可以发现高优先级的未必先执行!但先执行的概率很大!

最低优先级的 总是最后执行!

*/

 

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《Java线程-线程的优先级
本文地址:https://www.zhiletu.com/archives-70.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微