¿Cómo implementar palabras clave volátiles en Java?



Java es una programación que está bendecida con muchas características. En este artículo exploraremos una de esas características que son las palabras clave volátiles en Java.

es una programación que está bendecida con muchas funciones. En este artículo exploraremos una de esas características que son las palabras clave volátiles en Java. En este artículo se cubrirán los siguientes consejos,

Continuando con este artículo sobre palabras clave volátiles en Java.





¿Cuál es la diferencia entre una clase abstracta y una interfaz?

Una palabra clave volátil se usa para modificar el valor de una variable por diferentes hilos. También se usa para hacer clases seguras para subprocesos. Significa que varios subprocesos pueden usar un método y una instancia de las clases al mismo tiempo sin ningún problema. La palabra clave volátil se puede utilizar con tipos primitivos u objetos.

Ejemplo

prueba de clase {static int var = 5}

En el ejemplo anterior, suponga que dos subprocesos están trabajando en la misma clase. Ambos subprocesos se ejecutan en diferentes procesadores donde cada subproceso tiene su copia local de var. Si algún hilo modifica su valor, el cambio no se reflejará en el original en la memoria principal. Conduce a una inconsistencia de datos porque el otro subproceso no es consciente del valor modificado.



prueba de clase {static volatile int var = 5}

En el ejemplo anterior, las variables estáticas son miembros de clase que se comparten entre todos los objetos. Solo hay una copia en la memoria principal. El valor de una variable volátil nunca se almacenará en la caché. Toda la lectura y escritura se realizará desde y hacia la memoria principal.

Continuando con este artículo sobre palabras clave volátiles en Java.

Diferencia entre sincronización y palabra clave volátil

La palabra clave volátil no sustituye a la palabra clave sincronizada, pero puede utilizarse como alternativa en determinados casos. Existen las siguientes diferencias que son las siguientes:



comparación de sal ansible chef títere
Palabra clave volátil Palabra clave de sincronización
La palabra clave volátil es un modificador de campo.La palabra clave sincronizada modifica los bloques de código y los métodos.
El hilo no se puede bloquear para esperar en caso de volatilidad.Los hilos se pueden bloquear para esperar en caso de sincronizarse.
Mejora el rendimiento del hilo.Los métodos sincronizados degradan el rendimiento del hilo.
Sincroniza el valor de una variable a la vez entre la memoria del hilo y la memoria principal.Sincroniza el valor de todas las variables entre la memoria del hilo y la memoria principal.
Los campos volátiles no están sujetos a la optimización del compilador.La sincronización está sujeta a la optimización del compilador.

Continuando con este artículo sobre palabras clave volátiles en Java.

Ejemplo:

public class VolatileTest {Private static final Logger LOGGER = MyLoggerFactory.getSimplestLogger () private static volatile int MY_INT = 0 public static void main (String [] args) {new ChangeListener (). start () new ChangeMaker (). start ()} La clase estática ChangeListener extiende el hilo {@Override public void run () {int local_value = MY_INT while (local_value<5){ if( local_value!= MY_INT){ LOGGER.log(Level.INFO,'Got Change for MY_INT : {0}', MY_INT) local_value= MY_INT } } } } static class ChangeMaker extends Thread{ @Override public void run() { int local_value = MY_INT while (MY_INT <5){ LOGGER.log(Level.INFO, 'Incrementing MY_INT to {0}', local_value+1) MY_INT = ++local_value try { Thread.sleep(500) } catch (InterruptedException e) { e.printStackTrace() } } } } } 

Imagen- Edureka volátil

Por lo tanto, hemos llegado al final de este artículo sobre 'Palabras clave volátiles en Java'. Si desea obtener más información, consulte Java Training de Edureka, una empresa de aprendizaje en línea de confianza. Edureka's El curso está diseñado para capacitarlo en conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog y nos pondremos en contacto con usted lo antes posible.

matriz unidimensional en java