Zuhause Entwicklung Was ist volatil? - Definition aus techopedia

Was ist volatil? - Definition aus techopedia

Inhaltsverzeichnis:

Anonim

Definition - Was bedeutet Flüchtig?

Volatile ist ein Schlüsselwort in der Programmiersprache Java, das angibt, dass eine einer Klasse zugeordnete Membervariable von mehreren Threads asynchron geändert werden kann. Das flüchtige Schlüsselwort im Code fungiert als Modifikator, wenn ein Member deklariert wird. Schlüsselwörter sind grundsätzlich reservierte Wörter mit einer bestimmten Bedeutung im Kontext eines Compilers.

Das Schlüsselwort volatile wird immer dann verwendet, wenn die Variable eine Art von Variable bezeichnet, die von der Umgebung oder dem System abhängig ist, z. B. einfache Zähler und Uhren.

Techopedia erklärt Volatile

Das Schlüsselwort volatile stellt sicher, dass jeder Lesezugriff auf eine Mitgliedsvariable den neuesten Wert davon zurückgibt. Dies ist nicht wirksam, wenn die letzten Änderungen in einem anderen Thread vorgenommen wurden. Wenn eine Mitgliedsvariable nicht als flüchtig deklariert ist, kann ein Thread die Änderungen, die an ihr mithilfe eines anderen Threads vorgenommen wurden, nicht erkennen.

Für ein doppeltes oder langes Mitglied stellt das flüchtige Schlüsselwort außerdem sicher, dass die virtuelle Maschine nicht zwei aufeinanderfolgende 32-Bit-Schreibvorgänge generiert, sondern stattdessen nur einen 64-Bit-Schreibvorgang erstellt. Wenn dies nicht möglich ist, stellt die JVM-Implementierung weiterhin die Atomizität dieser Funktion sicher, damit die alte untere Hälfte nicht mit der neuen oberen Hälfte eines volatilen Double oder Long gelesen wird.

Flüchtige Schreib- und Lesevorgänge stellen eine Beziehung her, die vor dem Entstehen eines Ereignisses besteht. Bevor auf ein flüchtiges Objekt zugegriffen wird, findet eine Synchronisation zwischen dem Hauptspeicher und den zwischengespeicherten Variablen statt, genau wie vor dem Eintritt in oder nach dem Verlassen eines synchronisierten Blocks. Dies bedeutet, dass ein flüchtiges Objekt ohne Synchronisation sicher veröffentlicht werden kann. Das heißt, wenn ein Thread auf ein flüchtiges Objekt zugreift, werden auch die Mitglieder dieses Objekts aktualisiert.

Wenn eine Variable als flüchtig beschrieben wird, führen JVM- und Java-Compiler die folgenden beiden Aktionen aus.

  1. Der Compiler kann die Anweisungen und Ausdrücke für diese Variable nicht maximieren.
  2. JVM synchronisiert die Variable.

Die Vorteile von volatile sind wie folgt:

  • Es ist leicht
  • Es verursacht einen sehr geringen Aufwand beim Lesen und Schreiben, ist jedoch immer noch schneller als das Sperren.
  • Flüchtig ist beständig gegen Deadlocks.
Was ist volatil? - Definition aus techopedia