Ausführliche Einführung zu „Haves-Before'.
Um die Leistung zu verbessern, ordnen Prozessoren und Compiler die Anweisungen häufig neu an, sie können jedoch nicht nach Belieben neu angeordnet werden. Es müssen die folgenden zwei Bedingungen erfüllt sein. Die Ergebnisse der Programmausführung können in einer Single-Thread-Umgebung nicht geändert werden. Wenn Datenabhängigkeiten bestehen, ist eine Neuordnung nicht zulässig. Wenn Sie den vorherigen Blog von LZ gelesen haben, wissen Sie, dass diese beiden Punkte tatsächlich einem zugeordnet werden können Punkt: Das Passiert-Vorher-Prinzip kann nicht weitergegeben werden. Darüber hinaus erlaubt JMM eine beliebige Reihenfolge. Als-ob-serielle Semantik bedeutet, dass alle Vorgänge zur Optimierung neu angeordnet werden können. Sie müssen jedoch sicherstellen, dass die Ausführungsergebnisse nach der Neuordnung nicht geändert werden können. Der Compiler, die Laufzeit und der Prozessor müssen alle dem Als-ob- entsprechen. serielle Semantik. Beachten Sie, dass „as-if-serial“ nur eine Single-Thread-Umgebung garantiert und in einer Multi-Thread-Umgebung ungültig ist. Lassen Sie uns ein einfaches Beispiel zur Veranschaulichung verwenden: int a = 1;
[Tote Java-Parallelität]-----Neuordnung des Java-Speichermodells
Einführung: Um die Leistung zu verbessern, ordnen Prozessoren und Compiler häufig Anweisungen neu an. Sie können die Reihenfolge jedoch nicht nach Belieben ändern Sie können es nicht beliebig sortieren. Es muss die folgenden zwei Bedingungen erfüllen: 1. Das Ergebnis der Programmausführung kann in einer Single-Thread-Umgebung nicht geändert werden. Wenn Sie sich den letzten Blog von LZ ansehen, werden Sie wissen, dass diese beiden Punkte tatsächlich auf eines zurückzuführen sind: Sie können nicht durch das „Passiert-vorher“-Prinzip abgeleitet werden, und JMM erlaubt eine beliebige Reihenfolge. as-if-serial semantics as-if-se
Einführung: Im letzten Blog ([Deadly Java Concurrency] – Eingehende Analyse des Implementierungsprinzips von Volatile) erwähnte LZ es Es wurde festgestellt, dass es aufgrund des Vorhandenseins von lokalem Thread-Speicher und Hauptspeicher in Verbindung mit der Neuordnung zu Sichtbarkeitsproblemen in Multithread-Umgebungen kommt. Wenn wir also Synchronisation und Sperren richtig verwenden, wann ändert Thread A die Variable a, die für Thread B sichtbar ist? Wir können nicht in allen Szenarien festlegen, wann von einem Thread geänderte Variablen für andere Threads sichtbar sind. Diese Regel gilt ab JDK 5. JMM verwendet ha
3. Praxis des nicht blockierenden Synchronisationsalgorithmus (3) - LatestResultsProvider
Einführung: Vielen Dank an trytocatch für die Übermittlung dieses Artikels. Vorwort Bevor Sie diesen Artikel lesen, müssen sich die Leser mit „Happen vor“ vertraut machen und einige grundlegende Konzepte der nicht blockierenden Synchronisierung verstehen. Der Schwerpunkt dieses Artikels liegt auf der flexiblen Anwendung der „Passiert-vorher“-Regel, einigen Tipps zur Problemlösung und Möglichkeiten zur Problemanalyse. Hintergrundeinführung Die ursprüngliche Anforderung lautet: Ich habe ein reguläres Ersatztool geschrieben
[Verwandte Fragen und Antworten]:
passiert vom Java-Speichermodell- vor Ausgabe der semantischen Reihenfolge
Das obige ist der detaillierte Inhalt vonAusführliche Einführung zu „Haves-Before'.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.
