Middle
Quelles sont les autres façons de lutter contre la course de threads, en plus d'utiliser le mot-clé volatile?
sobes.tech IA
Réponse de l'IA
Les mutex (blocs ou fonctions synchronisées, API Lock), variables atomiques (AtomicInteger, AtomicBoolean, etc.), sémaphores, moniteurs, canaux (pour le transfert de données entre threads), et l'utilisation de structures de données sûres pour l'accès parallèle (par exemple, ConcurrentHashMap, CopyOnWriteArrayList).
// Exemple avec bloc synchronized
private final Object lock = new Object();
private int count = 0;
public void increment() {
synchronized (lock) {
count++;
}
}
// Exemple avec AtomicInteger
private final java.util.concurrent.atomic.AtomicInteger atomicCount = new java.util.concurrent.atomic.AtomicInteger(0);
public void incrementAtomic() {
atomicCount.incrementAndGet();
}