永发信息网

JAVA多线程优先级如何运行。

答案:4  悬赏:20  手机版
解决时间 2021-01-06 11:15
  • 提问者网友:人傍凄凉立暮秋
  • 2021-01-05 21:38
JAVA多线程优先级如何运行。
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-01-05 22:01
书上说的的情况大多是在单核处理器上,但不完全对,那个线程会执行,完全取决于操作系统,
操作系统有自己的处理机制,Java会跟操作系统商量,优先级高的线程比优先级低的线程先执行的概率相对高一些,但不是绝对的,有时候优先级低的会先执行,完全取决于操作系统;

对于双核处理器,优先级高的线程比优先级低的线程先执行的概率逐渐减小,优先级高的线程和优先级低的线程都有可以先执行;

对于多核处理器,优先级高的线程和优先级低的线程哪个会先执行,真心不好说;另外多核处理器设置线程优先级没太多意义。追问我也是这样理解,这书就是胡诌的?追答目测这书好像针对的是单核处理器,单核处理器也不一定是优先级高的线程会执行,但优先级高的线程比优先级低的线程先执行概率高
全部回答
  • 1楼网友:鱼忧
  • 2021-01-05 23:27


在单核环境下,那么只会执行最高优先级线程,除非高的执行结束。
多核环境下,高低等级的线程都会执行,且执行次数会根据等级高低来分配概率。


分析原因: 多核情况下,操作系统分配各个cpu的运算任务,会因为低优先级的线程等待的时间过长来自动增高优先级的机制,所有都有机会执行。而单核环境下,会根据线程的优先级严格执行
  • 2楼网友:零点过十分
  • 2021-01-05 23:06
简单理解就是随机事件,不确定,不过可以设置休眠时长来满足你的需求
  • 3楼网友:玩家
  • 2021-01-05 22:16
一般多线程中也不会设置优先级,因为你设置优先级也不见得它就最先调用。关键通过信号量来让多个线程按照你想要的顺序执行。追问那这本书的写的是错的?追答我认为你设置优先级,也只能说明多个线程抢占时间片时,优先级高的线程得到的时间片的可能性大一些,但不代表它先运行。追问嗯,我也这样认为。。可是这本书,他竟然写优先级高的先执行。。。这书这是蛋疼
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯