Junior — Middle
Kā tiek veikta bloķēšana, izsaucot statisko metodi, kas ir deklarēts ar atslēgas vārdu synchronized?
sobes.tech AI
Atbilde no AI
Ja statiskā metode ir deklarēta ar atslēgas vārdu synchronized, bloķēšana notiek uz klases objekta (Class object), nevis uz instanci.
Tas nozīmē, ka, izsaucot šādu metodi, pavedienis (thread) iegūst monitora (lock) no klases, kurai pieder metode, un citi pavedieni, kas mēģina izsaukt jebkuru citu sinhronizētu statisko metodi no tās pašas klases, gaidīs, kamēr atbrīvosies bloķēšana.
Piemērs:
public class MyClass {
public static synchronized void staticSyncMethod() {
// metodes kods
}
}
Šeit monitors ir objekts MyClass.class.