Junior — Middle
Kuidas toimub lukustamine, kui kutsutakse välja staatiline meetod, mis on deklareeritud võtmesõnaga synchronized?
sobes.tech AI
Vastus AI-lt
Kui statiline meetod on deklareeritud võtmesõnaga synchronized, siis toimub lukustamine klassi objekti (Class object) peal, mitte eksemplari peal.
See tähendab, et sellise meetodi kutsumisel omandab niit (thread) klassi monitori (lock), millele meetod kuulub, ja teised niidid, kes püüavad kutsuda sama klassi teist synchronized statilist meetodit, ootavad lukust vabastamist.
Näide:
public class MyClass {
public static synchronized void staticSyncMethod() {
// meetodi kood
}
}
Siin on monitor MyClass.class objekt.