Heim  >  Artikel  >  Java  >  Was sind die häufigsten Sperren in Java?

Was sind die häufigsten Sperren in Java?

王林
王林Original
2019-11-20 17:43:348239Durchsuche

Was sind die häufigsten Sperren in Java?

Fair Lock/Unfair Lock

Fair Lock bedeutet, dass mehrere Threads für Sperren entsprechend der Reihenfolge gelten um das Schloss zu erwerben.

Unfaire Sperre bezieht sich auf die Reihenfolge, in der mehrere Threads Sperren erhalten. Es ist nicht möglich, dass der Thread, der später Sperren beantragt, die Sperre erhält Es ist möglich, dass der Thread, der zuerst angewendet wurde, zu einer Prioritätsumkehr oder einem Mangel führt.

Exklusive Sperre/gemeinsame Sperre

Exklusive Sperre bedeutet, dass die Sperre jeweils nur von einem Thread gehalten werden kann.

Geteilte Sperre bedeutet, dass die Sperre von mehreren Threads gehalten werden kann.

Mutex-Sperre/Lese-/Schreibsperre

Die oben erwähnte exklusive Sperre/gemeinsame Sperre ist ein weit gefasster Begriff, und die Mutex-Sperre/Lese-/Schreibsperre ist eine spezifische Realisierung .

Die spezifische Implementierung der Mutex-Sperre in Java ist ReentrantLock, und die spezifische Implementierung der Lese-/Schreibsperre in Java ist ReadWriteLock.

Optimistische Sperre/pessimistische Sperre

Optimistische Sperre und pessimistische Sperre beziehen sich nicht auf bestimmte Arten von Sperren, sondern auf die Perspektive der Betrachtung von Parallelität und Synchronisation.

Die pessimistische Sperre geht davon aus, dass gleichzeitige Vorgänge an denselben Daten definitiv geändert werden. Auch wenn keine Änderung vorliegt, wird sie als geändert betrachtet. Daher erfolgt bei gleichzeitigen Vorgängen mit denselben Daten die pessimistische Sperre in Form einer Sperre. Pessimistisch gesehen glaube ich, dass gleichzeitige Vorgänge ohne Sperren definitiv Probleme verursachen werden.

Optimistisches Sperren geht davon aus, dass gleichzeitige Vorgänge an denselben Daten nicht geändert werden. Beim Aktualisieren von Daten werden die Daten aktualisiert, indem versucht wird, die Daten zu aktualisieren und die Daten ständig neu zu aktualisieren. Optimistisch gesehen wird es bei gleichzeitigen Vorgängen ohne Sperren kein Problem geben.

Aus der obigen Beschreibung können wir ersehen, dass pessimistisches Sperren für Szenarien mit vielen Schreibvorgängen geeignet ist und optimistisches Sperren für Szenarien mit vielen Lesevorgängen geeignet ist Verbesserungen.

Die Verwendung pessimistischer Sperren in Java besteht darin, verschiedene Sperren zu verwenden.

Die Verwendung von optimistischem Sperren in Java ist eine sperrenfreie Programmierung, und der CAS-Algorithmus wird häufig verwendet. Ein typisches Beispiel ist die Atomklasse, die die Aktualisierung atomarer Operationen durch CAS-Spin implementiert.

Empfohlenes Tutorial: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonWas sind die häufigsten Sperren in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn