Sobes.tech
Junior — Middle

Synchronized anahtar kelimesi kullanıldığında kilit mekanizması hangi nesnede gerçekleştirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da synchronized anahtar kelimesi kullanıldığında, kilitleme mekanizması bağlama bağlıdır:

  • synchronized statik olmayan bir metoda uygulanırsa, kilitleme çağrılan nesne (this) üzerinde gerçekleşir.
  • synchronized statik bir metoda uygulanırsa, kilitleme sınıf nesnesi (Class) üzerinde gerçekleşir, yani sınıfın kendisi üzerinde.
  • synchronized(obj) bloğu kullanılırsa, kilitleme obj nesnesi üzerinde gerçekleşir.

Örnek:

public class Example {
    public synchronized void instanceMethod() {
        // this üzerinde kilitleme
    }

    public static synchronized void staticMethod() {
        // Example.class üzerinde kilitleme
    }

    public void blockMethod() {
        Object lock = new Object();
        synchronized(lock) {
            // lock üzerinde kilitleme
        }
    }
}