Sobes.tech
Junior — Middle

Cum se realizează blocarea la apelarea unei metode statice declarate cu cuvântul cheie synchronized?

sobes.tech AI

Răspuns de la AI

Dacă o metodă statică este declarată cu cuvântul cheie synchronized, blocarea are loc pe obiectul clasei (obiectul Class), nu pe o instanță.

Aceasta înseamnă că, la apelarea unei astfel de metode, firul de execuție (thread) obține monitorul (lock) clasei căreia îi aparține metoda, iar alte fire de execuție care încearcă să apeleze orice altă metodă statică sincronizată a aceleiași clase, vor aștepta eliberarea blocajului.

Exemplu:

public class MyClass {
    public static synchronized void staticSyncMethod() {
        // codul metodei
    }
}

Aici, monitorul este obiectul MyClass.class.