Quelles méthodes peuvent garantir un accès sécurisé à un objet ou à son champ depuis plusieurs threads en même temps?
sobes.tech IA
Réponse de l'IA
Pour assurer un accès sécurisé à un objet ou à son champ depuis plusieurs threads en Java, différentes méthodes de synchronisation sont utilisées:
-
Mot-clé
synchronized— permet de synchroniser des méthodes ou des blocs de code pour qu’un seul thread puisse les exécuter à la fois. -
Classes du paquet
java.util.concurrent, par exemple,ReentrantLock— un mécanisme de verrouillage plus flexible. -
Champs Volatile — garantissent la visibilité des modifications de la variable entre threads, mais ne garantissent pas l’atomicité des opérations complexes.
-
Classes atomiques (
AtomicInteger,AtomicReference, etc.) — offrent des opérations atomiques sans verrouillage. -
Objets immuables — si un objet est immuable, il est sûr pour l’accès depuis plusieurs threads sans synchronisation.
Exemple avec synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Cette approche garantit que les opérations sur count sont atomiques et thread-safe.