Sobes.tech
Junior — Middle

Sur quel objet le mécanisme de verrouillage est-il effectué lors de l'utilisation du mot-clé synchronized?

sobes.tech IA

Réponse de l'IA

En Java, lors de l'utilisation du mot-clé synchronized, le mécanisme de verrouillage dépend du contexte :

  • Si synchronized est appliqué à une méthode non statique, le verrouillage se fait sur l'objet (this) depuis lequel la méthode est appelée.
  • Si synchronized est appliqué à une méthode statique, le verrouillage se fait sur l'objet de la classe (Class), c'est-à-dire sur la classe elle-même.
  • Si un bloc synchronized(obj) est utilisé, le verrouillage se fait sur l'objet obj.

Exemple :

public class Example {
    public synchronized void instanceMethod() {
        // verrouillage sur this
    }

    public static synchronized void staticMethod() {
        // verrouillage sur Example.class
    }

    public void blockMethod() {
        Object lock = new Object();
        synchronized(lock) {
            // verrouillage sur lock
        }
    }
}