永发信息网

请问java线程优先级的设置为什么没有效果?

答案:2  悬赏:70  手机版
解决时间 2021-03-13 01:41
源码:
public class ThreadPriority implements Runnable {
private static Integer i = 0;

public void run() {
for (int n = 0; n < 5; n++) {
i += 1;
}
}

public static void main(String[] args) {
ThreadPriority tp = new ThreadPriority();
Thread td = new Thread(tp);
td.setPriority(Thread.MAX_PRIORITY);
td.start();
System.out.println("i=" + i);
}
}
----------------------------
main线程中创建同优先级的线程td,设置td优先级为Max 10,运行打印static值i应该是5才对,为什么还是输出0?难道main的优先级也是默认10吗?谢谢
最佳答案
所谓线程优先级,个人理解只是对资源竞争的一个辨别依据,就是说当多个线程竞争资源时,具有较高优先级的线程会优先执行。
楼主的线程执行过程太短、逻辑太简单,基本不存在竞争问题,当然看不出优先级的作用……
其实所谓优先级只有在长期稳定运行的系统中才有用,这个很难测试的……

以上回答我觉得挺好,希望对你有帮助。我当初也是测试这样的方法,不过后来也是看了上面的答案,也理解了,确实也是这样的。
全部回答
线程的优先级越高,只是获取cpu的执行时间片多一些.并不是比别的线程先执行.线程在start启动后还有个等待cpu来相应处理的过程,并非一start就立刻执行的.先start的线程也不能保证就一定比后start的线程更早执行的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求大神指导计算机中丢失DES4Client.dll怎么弄
和静县老龄工作委员会办公室我想知道这个在什
石榴石为什么有静电
我打√的那俩结果得几?
从郑州高铁站到南阳路江山路口坐哪路公交?
极速汽修我想知道这个在什么地方
请问石家庄桥西或新华区哪里有康明眼镜店?电
卫岗地址在什么地方,想过去办事
为什么t9800的cpu为啥还没有p8600的高?
结构基因组学 功能基因组学
怎么和男生聊天让他觉得我不烦但也不无趣
起亚秀尔空调控制面板老是自动断电
租房通知怎么写
巨星与明星有什么区别?
苏宁易购(从化店)地址在哪,我要去那里办事
推荐资讯
阿特兹自动换挡有点卡顿什么原因
MG4J2ZP/A 是苹果手机什么版本的
奥斯顿d120c吉他怎么样?正品价格大约多少?
梦见和别人拥抱
交电费和手机费的poss机去哪买
大通V80涡轮延时散热系统
河北东方石油建设工程有限公司地址在什么地方
浙江湖州期末数学重点考什么
翔盛汽车租赁这个地址在什么地方,我要处理点
鑫顺农资有限公司南门店怎么去啊,有知道地址
芙蓉温泉洗浴地址在什么地方,想过去办事
中国平安财产保险天长支公司地址在什么地方,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?