黑马程序员技术交流社区
标题:
关于线程优先级的问题
[打印本页]
作者:
L-℡
时间:
2013-12-20 23:39
标题:
关于线程优先级的问题
我把t1的线程优先级设置到最高,为什么有时候刚启动运行t2会比t1先执行?
新手 求指教!顺便求技术分!嘿嘿!{:3_62:}
public class ThreadTest4{
public static void main(String[] args) {
Thread t1=new Thread(new runner5());
Thread t2=new Thread(new runner6());
t1.setPriority(Thread.MAX_PRIORITY);
t1.start();
t2.start();
}
}
class runner5 implements Runnable{
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println("t1:"+i);
}
}
}
class runner6 implements Runnable{
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println("-----t2:"+i);
}
}
}
复制代码
作者:
一年之后
时间:
2013-12-21 00:05
线程初始化的时候 都是五级,最高是十级。
不是说你把线程优先级设置到十级,他就一定会先执行,只是抢夺CPU执行权的几率大一些。
作者:
赵晓海
时间:
2013-12-21 00:16
正如楼上所说
为了验证你的权限问题,可以输出100次或者更多次,统计结果就能发现权限高的运行次数多。
刚启动t2比t1先运行,是因为线程不是按照代码的顺序执行的,这只是个概率事件。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2