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`-ի վրա
        }
    }
}