Sobes.tech
Junior — Middle

Synchronized ачкыч сөзүн колдонууда жабуу механизми кай объектте ишке ашырылат?

sobes.tech AI

AIден жооп

Javaда, synchronized ачкыч сөзүн колдонуу менен, блоктоо механизми контекстке жараша болот:

  • Эгер synchronized статикалык эмес методго колдонулса, блокдоо объект (this) үстүндө болот, ал кайсы объекттен чакырылса да.
  • Эгер synchronized статикалык методго колдонулса, блокдоо класс объектисинде (Class), башкача айтканда, өзү класста болот.
  • Эгер synchronized(obj) блоку колдонулса, блокдоо obj объектисинде болот.

Мисал:

public class Example {
    public synchronized void instanceMethod() {
        // this үстүндө блокдоо
    }

    public static synchronized void staticMethod() {
        // Example.class үстүндө блокдоо
    }

    public void blockMethod() {
        Object lock = new Object();
        synchronized(lock) {
            // lock үстүндө блокдоо
        }
    }
}