Sobes.tech
Junior — Middle

Se poate folosi modificatorul synchronized pentru o metodă statică în Java?

sobes.tech AI

Răspuns de la AI

Da, în Java se poate folosi modificatorul synchronized pentru metoda statică. În acest caz, blocarea are loc la nivel de clasă (obiect Class), nu la nivel de instanță.

Aceasta înseamnă că dacă un fir de execuție rulează o metodă statică sincronizată, alte fire de execuție care încearcă să apeleze orice altă metodă statică sincronizată a aceleiași clase vor fi blocate până când blocarea este eliberată.

Exemplu:

public class Example {
    public static synchronized void staticMethod() {
        // cod sincronizat pe obiectul Example.class
    }
}

Astfel, synchronized pentru metodele statice asigură siguranța firului de execuție la nivel de clasă.