Junior — Middle
¿Cuál es el papel de la palabra clave volatile en la gestión de la concurrencia en Java?
sobes.tech AI
Respuesta de la IA
La palabra clave volatile en Java se usa para indicar una variable cuyo valor puede cambiar en diferentes hilos. Garantiza que la lectura y escritura de esa variable ocurran directamente desde la memoria principal, no desde la caché del procesador.
Esto es importante para la concurrencia, para evitar que un hilo vea un valor obsoleto de la variable, modificado por otro hilo.
Sin embargo, volatile no garantiza la atomicidad de las operaciones (por ejemplo, incremento), solo la visibilidad de los cambios. Para operaciones complejas, se deben usar sincronización o clases atómicas de java.util.concurrent.atomic.
Ejemplo:
volatile boolean flag = false;
// Hilo 1
flag = true;
// Hilo 2
if (flag) {
// verá garantizado el valor actualizado
}