Sobes.tech
Junior — Middle

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.