Heim  >  Artikel  >  Java  >  Welche Möglichkeiten gibt es, Thread-Sicherheit in Java zu implementieren?

Welche Möglichkeiten gibt es, Thread-Sicherheit in Java zu implementieren?

王林
王林nach vorne
2019-11-27 14:55:055467Durchsuche

Welche Möglichkeiten gibt es, Thread-Sicherheit in Java zu implementieren?

Um Thread-Sicherheit zu erreichen, sind im Allgemeinen mindestens zwei Merkmale erforderlich: Atomizität und Sichtbarkeit.

Implementierungsmethode:

1) Verwendung synchronize: Es ist atomar und sichtbar. Wenn Sie also den geänderten Synchronisierungsvorgang verwenden, ist es mit Sichtbarkeitsgeschlecht verbunden. synchronizedVerwendung pessimistische Sperren, um Thread-Sicherheit zu erreichen;

2) Verwenden Sie atomare Klassen anstelle von Basisdatentypen, um a++ in einer Multithread-Umgebung auszuführen Die Klassenimplementierung AtomicInteger verwendet auch flüchtig, um die Sichtbarkeit sicherzustellen. Verwenden Sie incrementAndGet(), um die native lokale Methode Unsafe aufzurufen. CAS verwendet Bussperren oder Cachesperren, um Atomizität sicherzustellen. CAS >Java-Video-Tutorials

3) Bei Verwendung des Schlüsselworts muss volatile nicht unbedingt atomar sein, z. B. die Verwendung flüchtiger Variablen zur Ausführung von ++ oder - -Operationen (num++), die wir benötigen Damit die durch volatile geänderte Variable atomar sein muss, können wir sie im Allgemeinen wie folgt auf die Variable vom Typ

festlegen:

volatile boolean tag = true;
线程1 while(tag){};
线程2 while(tag){};
volatile Wenn es eine Variable gibt, die zu- oder abnimmt, verwenden wir Atomklassen ( boolean) verwendet werden.

4) Verwenden Sie AtomicInteger, um jeden Thread zu isolieren.

5) Wir können auch andere Sperren verwenden, z. B. Wiedereintrittssperren (ThreadLocal), um die Thread-Sicherheit sicherzustellen 🎜>6) Wir können auch kritische Abschnitte, Mutexe und Semaphoren verwenden, um die Thread-Sicherheit zu gewährleisten.

Dieser Artikel wird von der Rubrik ReentrantLockJava-Einführungslernen

empfohlen. Jeder ist herzlich willkommen, gemeinsam zu lernen und zu kommunizieren.

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, Thread-Sicherheit in Java zu implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen