Es gibt zwei verschiedene Konzepte hier.
- Schnell-Pfad und Slow-Pfadcode
- Uncontended und stritten Synchronisation
Langsam-Pfad vs Schnellpfadcode
Dies ist ein weiterer Weg, um die Hersteller von identifizieren der maschinenspezifische Binärcode.
Mit HotSpot VM, slow-Pfadcode ist Binärcode durch eine C++ Implementierung erzeugt, wo schnell Pfadcode Code durch JIT-Compiler erzeugt bedeutet.
Im Allgemeinen Sinn ist Fast-Path-Code viel mehr optimiert. JIT-Compiler wikipedia is a good place to start vollständig zu verstehen.
Uncontended und stritten Synchronisation
Java Synchronisierungskonstrukt (Monitors) haben das Konzept des Eigentums. Wenn ein Thread versucht, den Monitor zu sperren (zu übernehmen), kann er entweder gesperrt (gehört einem anderen Thread) oder entsperrt werden.
Uncontended Synchronisation geschieht in zwei verschiedenen Szenarien:
- entriegelte Monitor (Eigentum Straße gewonnen weg)
- -Monitor bereits vom selben Thread gehört
stritten Synchronisation, auf der anderen Seite, bedeutet, dass der Thread blockiert wird, bis der Eigentümer-Thread die Monitorsperre aufgibt.
Die Beantwortung der Frage
von schnell Pfad uncontended Synchronisation der Autor Mittel, die schnellste Bytecode Übersetzung (schnell-Pfad) im günstigsten Szenario (uncontended Synchronisation).
Haben Sie irgendwelche Google-Suchen gemacht. Das kam für mich auf: https://blogs.oracle.com/dagastine/entry/java_synchronization_optimizations_in_mustang – Gray