Junior — Middle
¿En qué objeto se realiza el mecanismo de bloqueo al usar la palabra clave synchronized?
sobes.tech AI
Respuesta de la IA
En Java, al usar la palabra clave synchronized, el mecanismo de bloqueo depende del contexto:
- Si
synchronizedse aplica a un método no estático, el bloqueo ocurre en el objeto (this) desde el cual se llama al método. - Si
synchronizedse aplica a un método estático, el bloqueo ocurre en el objeto de la clase (Class), es decir, en la propia clase. - Si se usa un bloque
synchronized(obj), el bloqueo ocurre en el objetoobj.
Ejemplo:
public class Example {
public synchronized void instanceMethod() {
// bloqueo en this
}
public static synchronized void staticMethod() {
// bloqueo en Example.class
}
public void blockMethod() {
Object lock = new Object();
synchronized(lock) {
// bloqueo en lock
}
}
}