Junior — Middle
Wie erfolgt die Sperrung beim Aufruf einer statischen Methode, die mit dem Schlüsselwort synchronized deklariert ist?
sobes.tech KI
Antwort von AI
Wenn eine statische Methode mit dem Schlüsselwort synchronized deklariert ist, erfolgt die Sperrung auf dem Klassenobjekt (Class-Objekt) und nicht auf einer Instanz.
Das bedeutet, dass beim Aufruf dieser Methode der Thread den Monitor (Lock) der Klasse erwirbt, zu der die Methode gehört, und andere Threads, die versuchen, eine andere synchronisierte statische Methode dieser Klasse aufzurufen, auf die Freigabe des Locks warten.
Beispiel:
public class MyClass {
public static synchronized void staticSyncMethod() {
// Code der Methode
}
}
Hier ist das Monitor-Objekt MyClass.class.