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.