Sobes.tech
Junior — Middle

Comment le verrouillage est-il effectué lors de l'appel d'une méthode statique déclarée avec le mot-clé synchronized ?

sobes.tech IA

Réponse de l'IA

Si une méthode statique est déclarée avec le mot-clé synchronized, le verrouillage se produit sur l'objet de la classe (objet Class), et non sur une instance.

Cela signifie qu'en appelant cette méthode, le thread acquiert le moniteur (lock) de la classe à laquelle appartient la méthode, et d'autres threads tentant d'appeler toute autre méthode statique synchronisée de cette même classe attendront que le verrou soit libéré.

Exemple:

public class MyClass {
    public static synchronized void staticSyncMethod() {
        // code de la méthode
    }
}

Ici, le moniteur est l'objet MyClass.class.