线程优先级问题 貌似不起作用

J2EE 码拜 10年前 (2015-04-07) 817次浏览 0个评论
 
class sync_thread 
{
public static void main (String argv[])
{
Runnable r=new name_test();
Thread t1=new Thread(r,"t1");
Thread t2=new Thread(r,"t2");
t1.setPriority(Thread.MAX_PRIORITY);
t2.setPriority(Thread.MIN_PRIORITY);
t2.start();
t1.start();

}

}



/*11.4
****
*/
class name_test implements Runnable {

public void run()
{
for(int i=0;i<10;i++)
{
/*
if(i==5 && Thread.currentThread().getName().equals("t1"))
{
Thread.yield();
}
*/
System.out.println("Name:"+Thread.currentThread().getName()+" i: "+i);

}
}
}

上面代码输出的不是等t1线程全部输出完了再执行t2线程,难道那个优先级只是设定谁先运行?

输出的结果:
Name:t2 i: 0
Name:t2 i: 1
Name:t1 i: 0
Name:t2 i: 2
Name:t2 i: 3
Name:t2 i: 4
Name:t2 i: 5
Name:t2 i: 6
Name:t1 i: 1
Name:t1 i: 2
Name:t2 i: 7
Name:t1 i: 3
Name:t1 i: 4
Name:t2 i: 8
Name:t2 i: 9
Name:t1 i: 5
Name:t1 i: 6
Name:t1 i: 7
Name:t1 i: 8
Name:t1 i: 9

线程优先级问题 貌似不起作用
10分
优先级只是执行的概率比较大,中奖概率大也不一定能中奖
线程优先级问题 貌似不起作用
20分
线程优先级意义不大,并不是说优先级高的一定先执行,而且这个依赖于操作系统。

如果希望某个线程优先执行,应该使用同步控制。

线程优先级问题 貌似不起作用
10分
想要执行完一个线程在执行另一个,那么只能同步,否则异步消息,你的优先级只是决定谁先执行而已
线程优先级问题 貌似不起作用
引用 2 楼 rumlee 的回复:

线程优先级意义不大,并不是说优先级高的一定先执行,而且这个依赖于操作系统。

如果希望某个线程优先执行,应该使用同步控制。

原来这样呀,谢谢了哦~~~


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明线程优先级问题 貌似不起作用
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!