Sobes.tech
Junior — Middle

Ինչպե՞ս է կատարվում բլոկավորումը, երբ կանչվում է static մեթոդը, որը հայտարարված է synchronized բանալի բառով։

sobes.tech AI

Պատասխան AI-ից

Եթե ստատիկ մեթոդը հայտարարված է synchronized բանալի բառով, ապա բլոկավորումը տեղի է ունենում դասի օբյեկտի (Class object) վրա, ոչ թե օրինակակի վրա:

Սա նշանակում է, որ այդպիսի մեթոդը կանչելիս, թելը (thread) ստանում է դասի մոնիտորը (lock), և մյուս թելերը, որոնք փորձում են կանչել այդ նույն դասի ցանկացած այլ synchronized ստատիկ մեթոդ, կսպասեն լոկի ազատմանը:

Օրինակ:

public class MyClass {
    public static synchronized void staticSyncMethod() {
        // մեթոդի կոդը
    }
}

Այստեղ մոնիտորը MyClass.class օբյեկտն է։