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线程,难道那个优先级只是设定谁先运行? 输出的结果: |
|
10分 |
优先级只是执行的概率比较大,中奖概率大也不一定能中奖
|
20分 |
线程优先级意义不大,并不是说优先级高的一定先执行,而且这个依赖于操作系统。
如果希望某个线程优先执行,应该使用同步控制。 |
10分 |
想要执行完一个线程在执行另一个,那么只能同步,否则异步消息,你的优先级只是决定谁先执行而已
|
|
原来这样呀,谢谢了哦~~~ |
|