Wenn wir erstellen new Thread(Runnable target)
Es wird einige Priorität als übergeordnete Thread haben. Meine Frage ist, kann die Priorität von der JVM in jedem Fall geändert werden? Ich verwende nicht setPriority (int) Methode.Java: Wird Thread-Priorität von JVM (implizit) geändert
Antwort
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:
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.
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.
- 1. Finden Jvm von Java
- 2. Java-Agent wird nicht in JVM geladen
- 3. Festlegen der CoreData NSManagedObjectContext-Threadpriorität
- 4. Java-Anwendungsserver und JVM
- 5. Java: String-Methode wird nicht korrekt geändert?
- 6. Ändern der Threadpriorität im WCF RIA-Dienst
- 7. Java - Injizieren von Java-Agent in die Ausführung von jvm
- 8. Python3: Basiskonstruktor wird implizit aufgerufen
- 9. Wie sammle ich JVM Leistungsstatistik von Java
- 10. Separate JVM-Eigenschaften für jedes Java-Programm auf derselben JVM
- 11. Entitätsreferenz wird nicht implizit geladen?
- 12. Welche JVM-Skriptsprache wird verwendet, um eine Java-Webanwendung anzupassen?
- 13. Java-Objekt-ID in JVM
- 14. Java Memory erklärt (SUN JVM)
- 15. JVM-Speicher von C
- 16. Jvm Heapdump wird nicht durch Signal
- 17. Wie wird systemeigener Code von der JVM behandelt
- 18. Wann wird StringBuffer/StringBuilder nicht implizit vom Compiler verwendet?
- 19. GC Clojure/Java/JVM-Speichereinstellungen
- 20. JVM- und Java-Linux-Prozess
- 21. Zeichenfolge, die nicht geändert wird Von strings.xml
- 22. Speicherdetails von JVM als Prozess
- 23. Definition `implizit def 'w/Implizit?
- 24. Eingang wird implizit in Oktal konvertiert
- 25. Wird die Addition von Byte aufgrund von Java-Sprachregeln oder wegen jvm in int konvertiert?
- 26. Wie Objekterstellung oder Konstruktoren implizit in Java
- 27. Kann ich implizit importierte Java-Bibliotheken entfernen?
- 28. Wie RTLD_DEEPBIND verwenden, wenn implizit aufgerufen wird?
- 29. JVM Clustering in eigenständigen Java-Anwendungen
- 30. Lesen Java JVM-Startparameter (zB -Xmx)
Ich frage nicht über die Planung. Meine Frage ist einfach Thread Priorität kann von der JVM geändert werden oder nicht – mcacorner
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? –
Ich frage nach regelmäßigen JVM nicht übersteuert – mcacorner