2017-03-22 2 views

Antwort

2

Wenn Sie fragen, ob der Thread-Scheduler die Fäden nach ihrer Priorität zu planen hat, ist die Antwort keine.

Es kann wählen (Preemptive Scheduling), aber es liegt an der Plattform zu entscheiden, welche Scheduling-Algorithmus zu verwenden.

Einige Lesungen:

+0

Ich frage nicht über die Planung. Meine Frage ist einfach Thread Priorität kann von der JVM geändert werden oder nicht – mcacorner

+0

Ich denke, Sie müssen auf Ihre Frage genau sein: Was meinst du mit "kann JVM es ändern"? Ist es möglich, dass jemand, der eine JVM-Implementierung schreibt, die Thread-Priorität ändert? Oder gibt es eine JVM-Implementierung? Ich glaube, dass die Spezifikation dies nicht verbietet (also wahrscheinlich Ja für die erste Frage), aber ich bezweifle, dass eine JVM das tut (also wahrscheinlich Nein für die zweite Frage). Aber warum kümmerst du dich darum? –

+0

Ich frage nach regelmäßigen JVM nicht übersteuert – mcacorner

2

Nein, es wird nicht. Nur um unter den Hauben das Betriebssystem oder das System hinzuzufügen, das den letzten Aufruf hat, welche Threads auf seinem Kern ausgeführt werden müssen, und somit ist schließlich ein eigener Zeitplanungsalgorithmus von Bedeutung.

JVM präsentiert jedoch die Threads für OS und hier spielt die Priorität wieder eine Rolle basierend auf dem JVM-Scheduling-Algorithmus, aber das Betriebssystem entscheidet.

1

Ich sehe keine expliziten Garantien dafür, aber es ist nicht die Art von Sache, die explizite Garantien gewährt.

Es gibt einen Getter und Setter für die Priorität, und die Implikation ist, dass der Wert sich nicht ändern wird, wenn jemand den Setter erneut aufruft.

Aber bitte beachten Sie, dies bedeutet nicht, dass kein Teil des Systems setPriority() auf "Ihre" Threads aufrufen darf, nur dass es keine interne Trickserei innerhalb der Thread Klasse selbst gibt.

Verwandte Themen