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分 |
想要执行完一个线程在执行另一个,那么只能同步,否则异步消息,你的优先级只是决定谁先执行而已
|
原来这样呀,谢谢了哦~~~ |