Junior — Middle
Auf welchem Objekt erfolgt der Sperrmechanismus bei Verwendung des Schlüsselworts synchronized?
sobes.tech KI
Antwort von AI
In Java hängt der Sperrmechanismus bei Verwendung des Schlüsselworts synchronized vom Kontext ab:
- Wenn
synchronizedauf eine nicht-statische Methode angewendet wird, erfolgt die Sperrung auf dem Objekt (this), auf dem die Methode aufgerufen wird. - Wenn
synchronizedauf eine statische Methode angewendet wird, erfolgt die Sperrung auf dem Klassenobjekt (Class), also auf der Klasse selbst. - Wenn ein Block
synchronized(obj)verwendet wird, erfolgt die Sperrung auf dem Objektobj.
Beispiel:
public class Example {
public synchronized void instanceMethod() {
// Sperrung auf this
}
public static synchronized void staticMethod() {
// Sperrung auf Example.class
}
public void blockMethod() {
Object lock = new Object();
synchronized(lock) {
// Sperrung auf lock
}
}
}