Junior — Middle
Sur quel objet le mécanisme de verrouillage est-il effectué lors de l'utilisation du mot-clé synchronized?
sobes.tech IA
Réponse de l'IA
En Java, lors de l'utilisation du mot-clé synchronized, le mécanisme de verrouillage dépend du contexte :
- Si
synchronizedest appliqué à une méthode non statique, le verrouillage se fait sur l'objet (this) depuis lequel la méthode est appelée. - Si
synchronizedest appliqué à une méthode statique, le verrouillage se fait sur l'objet de la classe (Class), c'est-à-dire sur la classe elle-même. - Si un bloc
synchronized(obj)est utilisé, le verrouillage se fait sur l'objetobj.
Exemple :
public class Example {
public synchronized void instanceMethod() {
// verrouillage sur this
}
public static synchronized void staticMethod() {
// verrouillage sur Example.class
}
public void blockMethod() {
Object lock = new Object();
synchronized(lock) {
// verrouillage sur lock
}
}
}