Sobes.tech
Junior — Middle

Synchronized açar sözü istifadə edilərkən kilidləmə mexanizmi hansı obyekt üzərində həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da synchronized açar sözü istifadə edilərkən, kilidləmə mexanizmi kontekstdən asılıdır:

  • Əgər synchronized statik olmayan metoda tətbiq olunursa, kilidləmə çağırılan obyekt (this) üzərində baş verir.
  • Əgər synchronized statik metoda tətbiq olunursa, kilidləmə sinif obyekti (Class) üzərində baş verir, yəni sinif özü üzərində.
  • Əgər synchronized(obj) bloku istifadə olunursa, kilidləmə obj obyektində baş verir.

Misal:

public class Example {
    public synchronized void instanceMethod() {
        // this üzərində kilidləmə
    }

    public static synchronized void staticMethod() {
        // Example.class üzərində kilidləmə
    }

    public void blockMethod() {
        Object lock = new Object();
        synchronized(lock) {
            // lock üzərində kilidləmə
        }
    }
}