Sobes.tech
Junior — Middle

¿Qué significa usar la palabra clave synchronized al sincronizar un objeto en Java?

sobes.tech AI

Respuesta de la IA

La palabra clave synchronized en Java se utiliza para garantizar la exclusión mutua al acceder a un objeto o bloque de código por varios hilos. Garantiza que solo un hilo pueda ejecutar el código sincronizado para ese objeto en un momento dado.

Cuando un método o bloque está marcado como synchronized, el hilo que entra en él adquiere el monitor (candado) del objeto. Otros hilos que intenten entrar en ese mismo bloque o método sincronizado para el mismo objeto esperarán a que se libere el monitor.

Ejemplo:

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public int getCount() {
        return count;
    }
}

En este ejemplo, el método increment está sincronizado para evitar cambios simultáneos en la variable count por varios hilos, lo que previene condiciones de carrera.