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

2025-05-13 02:22:02
推荐回答(4个)
回答(1):

书上说的的情况大多是在单核处理器上,但不完全对,那个线程会执行,完全取决于操作系统,
操作系统有自己的处理机制,Java会跟操作系统商量,优先级高的线程比优先级低的线程先执行的概率相对高一些,但不是绝对的,有时候优先级低的会先执行,完全取决于操作系统;

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

对于多核处理器,优先级高的线程和优先级低的线程哪个会先执行,真心不好说;另外多核处理器设置线程优先级没太多意义。

回答(2):

一般多线程中也不会设置优先级,因为你设置优先级也不见得它就最先调用。关键通过信号量来让多个线程按照你想要的顺序执行。

回答(3):

简单理解就是随机事件,不确定,不过可以设置休眠时长来满足你的需求

回答(4):

在单核环境下,那么只会执行最高优先级线程,除非高的执行结束。

多核环境下,高低等级的线程都会执行,且执行次数会根据等级高低来分配概率。

分析原因: 多核情况下,操作系统分配各个cpu的运算任务,会因为低优先级的线程等待的时间过长来自动增高优先级的机制,所有都有机会执行。而单核环境下,会根据线程的优先级严格执行