Junior — Middle
Hoe wordt de blokkering uitgevoerd bij het aanroepen van een statische methode die is gedeclareerd met het sleutelwoord synchronized?
sobes.tech AI
Antwoord van AI
Als een statische methode wordt gedeclareerd met het sleutelwoord synchronized, dan gebeurt de blokkering op het klasse-object (Class object), niet op een instantie.
Dit betekent dat bij het aanroepen van zo'n methode, de thread de monitor (lock) van de klasse waar de methode bij hoort, verwerft, en andere threads die proberen een andere gesynchroniseerde statische methode van dezelfde klasse aan te roepen, wachten tot de lock wordt vrijgegeven.
Voorbeeld:
public class MyClass {
public static synchronized void staticSyncMethod() {
// code van de methode
}
}
Hier is het monitor-object MyClass.class.