Casa Sviluppo Cosa è volatile? - definizione da techopedia

Cosa è volatile? - definizione da techopedia

Sommario:

Anonim

Definizione - Cosa significa Volatile?

Volatile è una parola chiave all'interno del linguaggio di programmazione Java che specifica che una variabile membro associata a una classe può essere modificata in modo asincrono da più thread. La parola chiave volatile nel codice funge da modificatore quando viene dichiarato un membro. Le parole chiave sono parole fondamentalmente riservate con un significato distinto nel contesto di un compilatore.

La parola chiave volatile viene utilizzata ogni volta che la variabile indica una sorta di variabile che dipende dall'ambiente o dal sistema, come semplici contatori e orologi.

Techopedia spiega Volatile

La parola chiave volatile garantisce che ogni accesso in lettura a una variabile membro restituisca il valore più recente di essa. Ciò non è efficace quando le modifiche recenti vengono eseguite utilizzando un thread diverso. Se una variabile membro non viene dichiarata come volatile, un thread non sarà in grado di riconoscere le modifiche apportate ad essa utilizzando un thread diverso.

Per un membro doppio o lungo, la parola chiave volatile assicura anche che la macchina virtuale non generi due scritture successive a 32 bit, ma creerà invece una sola scrittura a 64 bit. Se ciò non è possibile, l'implementazione di JVM continua a garantire l'atomicità di questa funzione in modo che la vecchia metà inferiore non venga letta con la nuova metà superiore di un doppio volatile o lungo.

Scritture e letture volatili creano una relazione prima. Prima di accedere a un oggetto volatile, si verifica una sincronizzazione tra la memoria principale e le variabili memorizzate nella cache, proprio come avviene prima di entrare o dopo aver lasciato un blocco sincronizzato. Ciò implica che un oggetto volatile può essere pubblicato in sicurezza senza sincronizzazione; cioè quando un oggetto volatile accede a un thread, anche i membri di quell'oggetto vengono aggiornati.

Quando una variabile viene descritta come volatile, il compilatore JVM e Java esegue le seguenti due operazioni.

  1. Il compilatore non riesce a massimizzare le istruzioni e le espressioni relative a quella variabile.
  2. JVM sincronizza la variabile.

I vantaggi di volatile sono i seguenti:

  • È leggero
  • Causa un overhead molto piccolo per leggere e scrivere, ma è ancora più veloce del blocco.
  • Volatile è resistente ai blocchi morti.
Cosa è volatile? - definizione da techopedia