El uso de la palabra clave synchronized
en Java permite gestionar el acceso concurrente de múltiples hilos a un recurso compartido, evitando conflictos o comportamientos inconsistentes. Esta función asegura que solo un hilo pueda ejecutar un bloque de código o método a la vez, proporcionando un mecanismo seguro para la sincronización.
synchronized
en Java?
La palabra clave synchronized
en Java es utilizada para sincronizar el acceso de los hilos a un bloque de código o método que opera sobre recursos compartidos. Cuando un hilo adquiere el "lock" del objeto, otros hilos quedan bloqueados hasta que el primero libere el "lock", garantizando así la consistencia de los datos.
Existen dos maneras principales de usar synchronized
:
synchronized
en Java
public class Contador {
private int cuenta = 0;
public void incrementar() {
synchronized (this) {
cuenta++;
}
}
public int getCuenta() {
return cuenta;
}
}
En este ejemplo, el bloque synchronized (this)
asegura que solo un hilo puede incrementar la variable cuenta
a la vez.
public class Contador {
private int cuenta = 0;
public synchronized void incrementar() {
cuenta++;
}
public synchronized int getCuenta() {
return cuenta;
}
}
Aquí, el método completo está sincronizado, lo que garantiza que solo un hilo pueda ejecutar el método incrementar()
o getCuenta()
a la vez.
Para más detalles, puedes consultar la documentación oficial de Java sobre synchronized.
Jorge García
Fullstack developer