La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Qué significa volátil en Java?

¿Qué significa volátil en Java?

Cada vez que un hilo accede a una variable miembro modificada por Volatile, se fuerza a releer el valor de la variable miembro desde la memoria compartida. Además, cuando la variable miembro cambia, el hilo se ve obligado a escribir el valor modificado nuevamente en la memoria compartida. De esta forma, en cualquier momento, dos subprocesos diferentes siempre ven el mismo valor de una determinada variable miembro. \x0d\\x0d\La especificación del lenguaje Java establece: Para una velocidad óptima, permita que los subprocesos mantengan copias privadas de las variables miembro compartidas y solo comparta variables miembro con el subproceso cuando entre o salga de un bloque de código sincronizado. Comparación de valores originales. \x0d\\x0d\ De esta manera, cuando varios subprocesos interactúan con un objeto al mismo tiempo, debe prestar atención para permitir que los subprocesos obtengan cambios en las variables miembro compartidas de manera oportuna. \x0d\\x0d\La palabra clave volátil solicita a VM: No puede guardar una copia privada de esta variable miembro, pero debe interactuar directamente con la variable miembro compartida. \x0d\\x0d\Sugerencia de uso: use volátil en variables miembro a las que acceden dos o más subprocesos. No es necesario utilizarlo cuando la variable a la que se accederá ya está en un bloque de código sincronizado o es una constante. \x0d\\x0d\ Dado que el uso de volátil bloquea la optimización del código necesaria en la VM, es menos eficiente, por lo que esta palabra clave debe usarse solo cuando sea necesario. \x0d\\x0d\Al igual que en C, el compilador tiene prohibido optimizar~~~~