Sobes.tech
Junior — Middle

Come viene effettuato il blocco quando si chiama un metodo statico dichiarato con la parola chiave synchronized?

sobes.tech AI

Risposta dell'AI

Se un metodo statico viene dichiarato con la parola chiave synchronized, il blocco avviene sull'oggetto della classe (oggetto Class), e non su un'istanza.

Ciò significa che, chiamando tale metodo, il thread acquisisce il monitor (lock) della classe a cui appartiene il metodo, e altri thread che tentano di chiamare qualsiasi altro metodo statico sincronizzato di questa stessa classe, dovranno attendere che il lock venga rilasciato.

Esempio:

public class MyClass {
    public static synchronized void staticSyncMethod() {
        // codice del metodo
    }
}

Qui, il monitor è l'oggetto MyClass.class.