Taula de continguts:
Definició: què vol dir Volatile?
Volatile és una paraula clau dins del llenguatge de programació java que especifica que una variable de membre associada a una classe es pot modificar de manera asincrònica per diversos fils. La paraula clau volàtil del codi actua com a modificador quan es declara un membre. Les paraules clau són paraules fonamentalment reservades amb un significat diferent en el context d’un compilador.
La paraula clau volàtil s’utilitza sempre que la variable significa algun tipus de variable que depèn de l’entorn o del sistema, com ara comptadors i rellotges simples.
Techopedia explica Volatile
La paraula clau volàtil garanteix que cada accés de lectura a una variable de membre retorna el valor més recent d'aquesta. Això no és efectiu quan es fan els canvis recents amb un fil diferent. Si una variable de membre no es declara volàtil, un fil no podrà reconèixer les modificacions que s'hi han fet mitjançant un fil diferent.
Per a un membre doble o llarg, la paraula clau volàtil també garanteix que la màquina virtual no generarà dos escriptures successives de 32 bits, sinó que crearà una escriptura de 64 bits. Si això no és factible, la implementació de JVM continua garantint l'atomitat d'aquesta funció per tal que la meitat inferior antiga no es pugui llegir amb la nova meitat superior d'alguna volàtil doble o llarga.
Els escriptures i lectures volàtils configuren una relació que passa abans. Abans d’accedir a un objecte volàtil, es produeix una sincronització entre la memòria principal i les variables en la memòria cau, de la mateixa manera que es produeix abans d’entrar o després de deixar un bloc sincronitzat. Això implica que un objecte volàtil es pot publicar de manera segura sense sincronització; és a dir, quan un objecte volàtil accedeix a un fil, els membres d'aquest objecte també s'actualitzen.
Quan una variable es descriu com a volàtil, el compilador JVM i Java realitzen les dues coses següents.
- El compilador no maximitza les sentències i expressions relacionades amb aquesta variable.
- JVM sincronitza la variable.
Els avantatges del volàtil són els següents:
- És lleuger
- Fa que una sobrecàrrega molt petita llegeixi i escrigui, però encara és més ràpida que el bloqueig.
- El volàtil és resistent als panys morts.
