Sobes.tech
Junior — Middle

¿Qué métodos se pueden usar para garantizar un acceso seguro a un objeto o a su campo desde múltiples hilos al mismo tiempo?

sobes.tech AI

Respuesta de la IA

Para garantizar un acceso seguro a un objeto o a su campo desde múltiples hilos en Java, se utilizan varios métodos de sincronización:

  • Palabra clave synchronized — se puede sincronizar métodos o bloques de código para que solo un hilo pueda ejecutarlos a la vez.

  • Clases del paquete java.util.concurrent, por ejemplo, ReentrantLock — un mecanismo de bloqueo más flexible.

  • Campos Volatile — garantizan la visibilidad de los cambios en la variable entre hilos, pero no aseguran la atomicidad de operaciones complejas.

  • Clases atómicas (AtomicInteger, AtomicReference, etc.) — proporcionan operaciones atómicas sin bloqueos.

  • Objetos inmutables — si un objeto es inmutable, es seguro para acceder desde múltiples hilos sin sincronización.

Ejemplo con synchronized:

public class Counter {
    private int count = 0;

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

    public synchronized int getCount() {
        return count;
    }
}

Este enfoque garantiza que las operaciones sobre count sean atómicas y seguras para hilos.