Comment implémenter un mot-clé volatile en Java?



Java est un programme doté de nombreuses fonctionnalités. Dans cet article, nous explorerons l'une de ces fonctionnalités, le mot clé volatile en Java.

est un programme doté de nombreuses fonctionnalités. Dans cet article, nous explorerons l'une de ces fonctionnalités, le mot clé volatile en Java. Les pointeurs suivants seront traités dans cet article,

Passons à cet article sur les mots-clés volatils en Java.





ajouter deux nombres en java

Un mot-clé volatile est utilisé pour modifier la valeur d'une variable par différents threads. Il est également utilisé pour rendre les classes thread-safe. Cela signifie que plusieurs threads peuvent utiliser une méthode et une instance des classes en même temps sans aucun problème. Le mot-clé volatile peut être utilisé avec un type primitif ou des objets.

Exemple

Test de classe {static int var = 5}

Dans l'exemple ci-dessus, supposons que deux threads travaillent sur la même classe. Les deux threads s'exécutent sur des processeurs différents où chaque thread a sa copie locale de var. Si un thread modifie sa valeur, le changement ne sera pas reflété dans l'original dans la mémoire principale. Cela conduit à une incohérence des données car l'autre thread n'est pas conscient de la valeur modifiée.



test de classe {statique volatile int var = 5}

Dans l'exemple ci-dessus, les variables statiques sont des membres de classe qui sont partagés entre tous les objets. Il n'y a qu'une seule copie dans la mémoire principale. La valeur d'une variable volatile ne sera jamais stockée dans le cache. Toutes les lectures et écritures seront effectuées depuis et vers la mémoire principale.

Passons à cet article sur les mots-clés volatils en Java.

Différence entre la synchronisation et le mot-clé volatile

Le mot-clé volatile ne remplace pas le mot-clé synchronisé, mais il peut être utilisé comme alternative dans certains cas. Les différences suivantes sont les suivantes:



comment utiliser une sous-chaîne dans SQL
Mot-clé volatile Mot-clé de synchronisation
Le mot clé volatile est un modificateur de champ.Le mot-clé synchronisé modifie les blocs de code et les méthodes.
Le thread ne peut pas être bloqué pour l'attente en cas de volatilité.Les threads peuvent être bloqués pour l'attente en cas de synchronisation.
Il améliore les performances des threads.Les méthodes synchronisées dégradent les performances des threads.
Il synchronise la valeur d'une variable à la fois entre la mémoire de thread et la mémoire principale.Il synchronise la valeur de toutes les variables entre la mémoire de thread et la mémoire principale.
Les champs volatils ne sont pas soumis à l'optimisation du compilateur.La synchronisation est soumise à l'optimisation du compilateur.

Passons à cet article sur les mots-clés volatils en Java.

Exemple:

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 classe statique ChangeListener étend Thread {@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() } } } } } 

Image- Volatile-Edureka

Nous sommes donc arrivés à la fin de cet article sur «Mot-clé volatile en Java». Si vous souhaitez en savoir plus, consultez la formation Java d'Edureka, une entreprise de formation en ligne de confiance. Edureka Le cours est conçu pour vous former aux concepts Java de base et avancés, ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog et nous vous répondrons dans les plus brefs délais.

pivot et unpivot dans le serveur SQL