Sobes.tech
Junior — Middle

Quelles méthodes peuvent être utilisées pour prévenir les conditions de course dans un environnement multithread ?

sobes.tech IA

Réponse de l'IA

Pour prévenir les conditions de course (race condition) dans un environnement multithread, on utilise les méthodes suivantes :

  • Synchronisation (synchronized) — verrouillage des sections critiques du code, pour qu’un seul thread puisse les exécuter à la fois.
  • Utilisation de classes de java.util.concurrent — par exemple, ReentrantLock, AtomicInteger, ConcurrentHashMap.
  • Éviter l’état partagé — concevoir des structures de données thread-safe ou utiliser des objets immuables.
  • Utilisation de volatile — pour assurer la visibilité des modifications des variables entre threads.

Exemple avec synchronized :

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public synchronized int getCount() {
        return count;
    }
}

Ici, les méthodes increment et getCount sont synchronisées pour éviter l’accès simultané et la condition de course.