我正在做一份 Java 过去的试卷,我对以下问题感到困惑:
问:关于以下应用程序,哪一项总是正确的?
class HiPri extends Thread {
HiPri() {
setPriority(10);
}
public void run() {
System.out.println(“Another thread starting up.”);
while (true) { }
}
public static void main(String args[]) {
HiPri hp1 = new HiPri();
HiPri hp2 = new HiPri();
HiPri hp3 = new HiPri();
hp1.start();
hp2.start();
hp3.start();
}
}
A、应用程序运行时,线程hp1会执行;线程 hp2 和 hp3 永远不会获得 CPU。
B. 应用程序运行时,线程 hp1 执行完毕,线程 hp2 执行完毕,然后线程 hp3 执行完毕。
C. 当应用程序运行时,所有三个线程(hp1、hp2 和 hp3)将同时执行,在 CPU 中进行时间片轮换。
D. 上述任何一种情况都不能保证在所有情况下都会发生。
我选择 D,因为我认为 B 和 C 都是可能的,但不保证会发生。然而,关键答案是 C。我在这里遗漏了什么吗?谁能为我澄清一下?非常感谢。