ist eine Programmierung, die mit vielen Funktionen gesegnet ist. In diesem Artikel werden wir eine solche Funktion untersuchen, die ein flüchtiges Schlüsselwort in Java ist. Die folgenden Hinweise werden in diesem Artikel behandelt:
Fahren Sie mit diesem Artikel über flüchtige Schlüsselwörter in Java fort.
Ein flüchtiges Schlüsselwort wird verwendet, um den Wert einer Variablen durch verschiedene Threads zu ändern. Es wird auch verwendet, um Klassen threadsicher zu machen. Dies bedeutet, dass mehrere Threads problemlos eine Methode und eine Instanz der Klassen gleichzeitig verwenden können. Das flüchtige Schlüsselwort kann entweder mit primitivem Typ oder mit Objekten verwendet werden.
Mehrfachvererbung in Java mit Beispiel
Beispiel
Klassentest {static int var = 5}
Nehmen Sie im obigen Beispiel an, dass zwei Threads an derselben Klasse arbeiten. Beide Threads werden auf verschiedenen Prozessoren ausgeführt, wobei jeder Thread seine lokale Kopie von var hat. Wenn ein Thread seinen Wert ändert, wird die Änderung nicht im ursprünglichen Wert im Hauptspeicher wiedergegeben. Dies führt zu Dateninkonsistenzen, da der andere Thread den geänderten Wert nicht kennt.
Klasse Test {statisch flüchtig int var = 5}
Im obigen Beispiel sind statische Variablen Klassenmitglieder, die von allen Objekten gemeinsam genutzt werden. Es befindet sich nur eine Kopie im Hauptspeicher. Der Wert einer flüchtigen Variablen wird niemals im Cache gespeichert. Alle Lese- und Schreibvorgänge werden vom und zum Hauptspeicher ausgeführt.
Fahren Sie mit diesem Artikel über flüchtige Schlüsselwörter in Java fort.
Objekt in Array PHP verwandeln
Unterschied zwischen Synchronisation und flüchtigem Schlüsselwort
Das flüchtige Schlüsselwort ist kein Ersatz für das synchronisierte Schlüsselwort, kann jedoch in bestimmten Fällen als Alternative verwendet werden. Es gibt folgende Unterschiede:
Flüchtiges Schlüsselwort | Synchronisationsschlüsselwort |
Das flüchtige Schlüsselwort ist ein Feldmodifikator. | Das synchronisierte Schlüsselwort ändert Codeblöcke und -methoden. |
Der Thread kann nicht für das Warten im Falle einer Flüchtigkeit blockiert werden. | Threads können im Falle einer Synchronisierung für das Warten gesperrt werden. |
Es verbessert die Thread-Leistung. | Synchronisierte Methoden beeinträchtigen die Thread-Leistung. |
Es synchronisiert den Wert einer Variablen gleichzeitig zwischen Thread-Speicher und Hauptspeicher. | Es synchronisiert den Wert aller Variablen zwischen Thread-Speicher und Hauptspeicher. |
Flüchtige Felder unterliegen keiner Compileroptimierung. | Die Synchronisierung unterliegt der Compileroptimierung. |
Fahren Sie mit diesem Artikel über flüchtige Schlüsselwörter in Java fort.
Beispiel:
schnell scheitern vs sicher scheitern
öffentliche Klasse VolatileTest {private static final Logger LOGGER = MyLoggerFactory.getSimplestLogger () private static volatile int MY_INT = 0 public static void main (String [] args) {new ChangeListener (). start () new ChangeMaker (). start ()} statische Klasse ChangeListener erweitert Thread {@Override public void run () {int local_value = MY_INT while (local_value<5){ if( local_value!= MY_INT){ LOGGER.log(Level.INFO,'Got Change for MY_INT : {0}', MY_INT) local_value= MY_INT } } } } static class ChangeMaker extends Thread{ @Override public void run() { int local_value = MY_INT while (MY_INT <5){ LOGGER.log(Level.INFO, 'Incrementing MY_INT to {0}', local_value+1) MY_INT = ++local_value try { Thread.sleep(500) } catch (InterruptedException e) { e.printStackTrace() } } } } }
Damit sind wir am Ende dieses Artikels über 'Volatile Keyword in Java' angelangt. Wenn Sie mehr erfahren möchten, lesen Sie das Java-Training von Edureka, einem vertrauenswürdigen Online-Lernunternehmen. Edurekas Der Kurs wurde entwickelt, um Sie sowohl für Kern- als auch für fortgeschrittene Java-Konzepte zusammen mit verschiedenen Java-Frameworks wie Hibernate & Spring zu schulen.
Hast du eine Frage an uns? Bitte erwähne es im Kommentarbereich dieses Blogs und wir werden uns so schnell wie möglich bei dir melden.