Gibt es irgendwelche Annahmen darüber, wie fair JVM ist, wenn es darum geht, Threads für die Ausführung zu planen?JVM Fairness bei der Planung von Threads
Für den folgenden Ausschnitt, ist es möglich, dass "Code A" nur ausgeführt wird, wobei B ignoriert wird?
public static void main(String args[]) {
new Thread() {
public void run() {
for (;;) { /* code A */ }
}
}.start();
new Thread() {
public void run() {
for (;;) { /* code B */ }
}
}.start();
}
Die Frage ist eher eine theoretische - nehmen wir an, dass weder der Fäden blockiert wird oder auf andere Weise fördert Scheduler Kontext zu wechseln.
Ihr Betriebssystem unterstützt höchstwahrscheinlich präemptives Multitasking. In diesem Fall wird der Kontext diese Threads wechseln. Wenn Sie mehr als eine freie CPU haben, laufen beide die meiste Zeit. –
Guter Punkt für CPU-Nummer. Ich dachte nur an ein CPU-Szenario. –
Die meisten Computer haben heutzutage viele CPUs, sogar Mobiltelefone und Raspberry PIs. ;) –