Inhaltsverzeichnis:
Definition - Was bedeutet Thread-Synchronisierung?
Die Thread-Synchronisierung ist die gleichzeitige Ausführung von zwei oder mehr Threads, die wichtige Ressourcen gemeinsam nutzen. Threads sollten synchronisiert werden, um Konflikte bei der Ressourcennutzung zu vermeiden. Andernfalls können Konflikte auftreten, wenn parallel laufende Threads gleichzeitig versuchen, eine gemeinsame Variable zu ändern.
Techopedia erklärt die Thread-Synchronisation
Betrachten Sie das folgende Beispiel, um die Thread-Synchronisierung zu verdeutlichen: Drei Threads - A, B und C - werden gleichzeitig ausgeführt und müssen auf eine kritische Ressource, Z, zugreifen. Um Konflikte beim Zugriff auf Z zu vermeiden, müssen die Threads A, B und C synchronisiert werden . Wenn also A auf Z zugreift und B auch versucht, auf Z zuzugreifen, muss der Zugriff von B auf Z mit Sicherheitsmaßnahmen vermieden werden, bis A seine Operation beendet und Z verlassen hat.
In Java werden zwei Synchronisationsstrategien verwendet, um Thread-Interferenzen und Fehler bei der Speicherkonsistenz zu vermeiden:
- Synchronisierte Methode: Schließt das synchronisierte Schlüsselwort in seine Deklaration ein. Wenn ein Thread eine synchronisierte Methode aufruft, ruft die synchronisierte Methode automatisch die interne Sperre für das Objekt dieser Methode ab und gibt sie frei, wenn die Methode zurückgibt, selbst wenn diese Rückgabe durch eine nicht abgefangene Ausnahme verursacht wurde.
- Synchronized-Anweisung: Deklariert einen zu synchronisierenden Codeblock. Im Gegensatz zu synchronisierten Methoden sollten synchronisierte Anweisungen die Objekte angeben, die die interne Sperre bereitstellen. Diese Anweisungen sind nützlich, um die Parallelität mit der fein abgestimmten Synchronisation zu verbessern, da sie die Vermeidung unnötiger Blockierungen ermöglichen.
