Sobes.tech
Junior — Middle

Kako se vrši blokiranje prilikom poziva statičke metode deklarisane sa ključnom rečju synchronized?

sobes.tech АИ

Одговор од АИ

Ако je statička metoda deklarisana sa ključnom rečju synchronized, blokada se dešava na objektu klase (Class object), a ne na instanci.

To znači da, prilikom poziva takve metode, nit (thread) stiče monitor (lock) klase kojoj metoda pripada, i druge niti koje pokušavaju da pozovu bilo koju drugu sinkronizovanu statičku metodu iste klase, čekaju oslobađanje blokade.

Primer:

public class MyClass {
    public static synchronized void staticSyncMethod() {
        // kod metode
    }
}

Ovde, monitor je objekat MyClass.class.