Sobes.tech
Junior — Middle

Synchronized kalit so'zi ishlatilganda blokirovka mexanizmi qaysi ob'ektda amalga oshiriladi?

sobes.tech AI

AIdan javob

Java'da synchronized kalit so'zi ishlatilganda, bloklash mexanizmi kontekstga bog'liq:

  • Agar synchronized statik bo'lmagan metodga qo'llanilsa, bloklama chaqirilayotgan ob'ekt (this) ustida amalga oshiriladi.
  • Agar synchronized statik metodga qo'llanilsa, bloklama sinf ob'ekti (Class) ustida amalga oshiriladi, ya'ni sinf o'zi ustida.
  • Agar synchronized(obj) bloki ishlatilsa, bloklama obj ob'ekti ustida amalga oshiriladi.

Misol:

public class Example {
    public synchronized void instanceMethod() {
        // this ustida bloklama
    }

    public static synchronized void staticMethod() {
        // Example.class ustida bloklama
    }

    public void blockMethod() {
        Object lock = new Object();
        synchronized(lock) {
            // lock ustida bloklama
        }
    }
}