我读到 Java 线程是用户级线程,用户级线程和内核级线程之间的区别之一是内核级线程由内核调度(我们无法更改它),而对于用户级线程,我们可以定义自己的调度算法。
那么我们如何在 Java 中调度线程呢?在任何给定时间,当多个线程准备好执行时,运行时系统会选择具有最高优先级的 Runnable
线程执行。如果两个优先级相同的线程正在等待 CPU,调度程序会选择其中一个以循环方式运行。如果我不想要RR怎么办?有什么办法可以改变它,还是我在这里遗漏了什么?
最佳答案
您不能更改 JVM 的调度算法,这超出了范围。 JVM 使用底层操作系统提供的用户线程的线程。
因此,从 Java 的角度来看,您无法更改调度算法。调度是自动完成的。
在 Java 中你唯一能做的就是 set the priority of the thread .但这如何影响调度算法尚未定义。
您可以尝试更改运行 VM 的操作系统的调度算法。但这在很大程度上取决于所使用的操作系统。
关于java - 如何调度 Java 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17827332/