Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java 10: Thread-Local Handshakes (JEP 312) – Schnellere VM-Safepoints

JEP 312 – Thread-Local Handshakes

Hintergrund: Globale Safepoints

Die HotSpot VM nutzt globale Safepoints, um alle Application-Threads anzuhalten (z. B. für GC, Deoptimierung, Biased Locking Revocation). Alle Threads müssen an einem sicheren Punkt anhalten – das kostet Zeit und skaliert schlecht bei vielen Cores/Threads.

Lösung: Thread-Local Handshakes

Java 10 führt Thread-Local Handshakes ein: Die VM kann einen einzelnen Thread anhalten und einen Callback ausführen, ohne alle anderen Threads zu stoppen.

Wie es funktioniert

  1. VM fordert Handshake für Thread T an.
  2. Thread T erreicht nächsten Safepoint-Poll (bereits vorhanden für GC).
  3. Thread T führt den Handshake-Callback aus (z. B. Stack-Walk, Deopt-Check).
  4. Thread T läuft sofort weiter – keine anderen Threads betroffen.

Vorteile

Einschränkungen

Verwandte Optionen

-XX:+ThreadLocalHandshakes           # Aktivieren (Default auf x64/SPARC)
-XX:-ThreadLocalHandshakes           # Deaktivieren
-XX:ThreadLocalHandshakePollingInterval=... # Polling-Intervall (Experten)

Fazit

Thread-Local Handshakes sind eine VM-interne Optimierung, die besonders bei hochparallelen Workloads (viele Threads, viele Cores) Latenzspitzen reduziert. Für Anwendungsentwickler transparent – kein Code-Change nötig.

Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Kommentare: Typen, Verwendung und Best Practices
  3. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
  10. Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList