Sobes.tech
Junior — Middle

Pouvez-vous expliquer la finalité et le principe de fonctionnement du mot-clé volatile dans le contexte du développement Android?

sobes.tech IA

Réponse de l'IA

Le mot-clé volatile en Java (et, par extension, dans le développement Android) est utilisé pour assurer la visibilité des modifications d'une variable entre threads.

Lorsqu'une variable est déclarée comme volatile, cela garantit que :

  • La lecture de la variable se fait toujours depuis la mémoire principale, et non depuis le cache du thread.
  • L'écriture dans la variable devient immédiatement visible pour les autres threads.

Ceci est important dans un environnement multithread Android pour éviter des situations où un thread a modifié la valeur, mais un autre continue de voir l'ancienne.

Exemple :

private volatile boolean isRunning = true;

public void stop() {
    isRunning = false;
}

public void run() {
    while (isRunning) {
        // effectuer le travail
    }
}

Sans volatile, le thread exécutant run() pourrait ne pas voir le changement de isRunning et entrer dans une boucle infinie.

Cependant, volatile ne garantit pas l'atomicité des opérations complexes, pour cela, d'autres mécanismes de synchronisation sont nécessaires.