Der Inhalt dieses Artikels ist eine Einführung in die decrementAndGet-Methode von AtomicInteger (mit Code). Ich hoffe, dass er für Sie hilfreich ist.
unsafe.objectFieldOffset
Rufen Sie unsafe.objectFieldOffset auf, um den Offset des Wertfelds im Objekt abzurufen (tatsächlich den Offset von einem Feld zum Kopf des Objekts). übergeben Dieser Offset kann das Feld schnell finden)
static { try { valueOffset = unsafe.objectFieldOffset(AtomicInteger.class.getDeclaredField("value")); } catch (Exception ex) { throw new Error(ex); } }
Definieren Sie den Wert als flüchtigen Typ, um die Sichtbarkeit des Werts in mehreren Threads sicherzustellen
private volatile int value;
decrementAndGet
Unsafe.getAndAddInt aufrufen, die Parameter sind das aktuelle Objekt, der Offset und der Operationswert
/** * Atomically decrements by one the current value. * * @return the updated value */ public final int decrementAndGet() { //最后-1是由于getAndAddInt获取的值为交换前的值 return unsafe.getAndAddInt(this, valueOffset, -1) - 1; }
getAndAddInt
Rufen Sie den neuesten Speicherwert durch Rückgabe ab die Schleife getIntVolatile bis CompareAndSwapInt
public final int getAndAddInt(Object var1, long var2, int var4) { int var5; do { var5 = this.getIntVolatile(var1, var2); } while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4)); return var5; }
getIntVolatile
Die Methode enthält zwei Parameter, das aktuelle Objekt und den Offset; ruft die Ganzzahl ab, auf die die Speicheradresse zeigt, und unterstützt flüchtig Semantik
public native int getIntVolatile(Object var1, long var2);
Die Methode compareAndSwapInt
enthält vier Parameter: das aktuelle Objekt, den Offset, den erwarteten Wert und den neuen Wert, wenn der Wert des Offsets dem aktuellen entspricht Wenn das Objekt mit dem erwarteten Wert übereinstimmt, wird der Wert des aktuellen Objekts in den neuen Wert geändert und gibt „true“ zurück. Andernfalls wird „false“ zurückgegeben
public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);
Das obige ist der detaillierte Inhalt vonEinführung in die decrementAndGet-Methode von AtomicInteger (mit Code). 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

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Dreamweaver Mac
Visuelle Webentwicklungstools