entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Uso de modificador volatile en Java

¿En que casos debo declarar una variable como volatile?

0voto

Peter comentado

Como dice alv-c, cuando el acceso a la variable se puede realizar desde distintos hilos.

2 Respuestas

1voto

alv-c Puntos1200

Si no me equivoco debe ser volatile cuando la variable es asignada y/o asignada desde varios threads. Para que cuando cambie el valor de este, los mismos al leer vean el valor más reciente

0voto

MrGenis Puntos1330

Al declarar una variable como volátil habrá una variable para cada objeto. Así que en la en la programación no hay ninguna diferencia con respecto a una variable normal, y totalmente diferente de estática. Sin embargo, incluso con los campos de objeto, un hilo puede almacenar en memoria caché un valor de la variable locamente.

Esto significa que si dos subprocesos actualizar una variable del mismo objeto al mismo tiempo, y la variable no es declarada volátil, podría ser un caso en el que uno de los hilos tiene en caché un valor anterior.

Incluso si tiene acceso a un archivo (clase) de valores estáticos a través de hilos múltiples, ¡cada hilo puede tener su copia en caché! Para evitar esto, puede declarar la variable como volátil estática y esto hará que el hilo tenga que leer nuevamente la variable cada vez asegurando que se tendrá el valor mas actual.

¡Sin embargo, la volatilidad no es un sustituto para la sincronización correcta!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta