Thread-Synchronisierung

Was ist Thread-Synchronisierung?
Thread-Synchronisierung ist die gleichzeitige Ausführung von zwei oder mehr Threads, die kritische Ressourcen teilen. Threads sollten synchronisiert werden, um kritische Ressourcennutzungskonflikte zu vermeiden. Andernfalls können Konflikte auftreten, wenn parallel laufende Threads versuchen, eine gemeinsame Variable gleichzeitig zu ändern.

Beachten 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 Threads A, B und C synchronisiert werden . Wenn A also auf Z zugreift und B auch versucht, auf Z zuzugreifen, muss Bs Zugriff auf Z mit Sicherheitsmaßnahmen vermieden werden, bis A seine Operation beendet und Z verlässt.

In Java werden zwei Synchronisationsstrategien verwendet, um Thread-Interferenz- und Speicherkonsistenzfehler zu vermeiden:

Synchronized Method: Beinhaltet das synchronisierte Schlüsselwort in seiner Deklaration. Wenn ein Thread eine synchronisierte Methode aufruft, erfasst die synchronisierte Methode automatisch die systeminterne Sperre für das Objekt dieser Methode und gibt sie bei der Rückgabe der Methode frei, auch wenn diese Rückgabe durch eine nicht abgefangene Ausnahme verursacht wurde.

Synchronisierte Anweisung: Deklariert einen zu synchronisierenden Codeblock. Im Gegensatz zu synchronisierten Methoden sollten synchronisierte Anweisungen die Objekte angeben, die die systeminterne Sperre bereitstellen. Diese Anweisungen sind nützlich, um die Gleichzeitigkeit mit feinkörniger Synchronisierung zu verbessern, da sie die Vermeidung unnötiger Blockierungen ermöglichen.


War die Erklärung zu "Thread-Synchronisierung" hilfreich? Jetzt bewerten:

Weitere Erklärungen zu