ayudenme con esta pregunta si..
cuales son las propiedades de Jlaben en java

Respuestas

Respuesta dada por: LauraPerez08
0
La palabra clave volatile, hace referencia a concurrencia. Esta palabra clave es util cuando existen muchos hilos tratando de leer el valor de una variable. Cuando una variable es marcada como volatile, el valor de esa variable es escrita y es leída desde la memoria principal. Para entender un poco el concepto es necesario tener claro algunas cosas.
Cuando se trabaja con hilos, usualmente cada hilo hace una copia de la variable a leer en su cache, cada hilo tiene una memoria cache que usa por performance, es mas rápido y menos costoso. Pero el tener esto local, cuando muchos hilos trabajan sobre la misma variable, suelen ocurrir errores en cuanto a consistencia de la información.
Pero cuando una variable es marcada como volatile, el hilo no hace una copia en su memoria cache, sino que lee y escribe directamente en la memoria principal.
Esto garantiza que el valor que se lee es siempre el mas actualizado. Por tanto no hay un lock o bloqueo al leer o escribir el valor de dicha variable. Cuando se lee una variable que esta marcada como volatile no es necesario usarsynchronized  ya que volatile garantiza que se la variable tiene el valor actualizado, el ultimo siempre. Pero si es recomendable usarlo cuando varios hilos leen y escriben.
Cabe resaltar que el escribir y leer de la memoria principal es mas costoso por tanto impacta en el performance de la aplicación, hay que saber cuando y donde usar volatile.
La forma de declarar una variable es la siguiente:

public volatile int counter = 0;

NOTA: Las keyword o palabras clave transient volatile solo se aplican a variables de instancia. NO se puede aplicar a métodos, clases o variables locales (dentro de un método).
Preguntas similares