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!