Sobes.tech
Middle

¿Cuáles son otras formas de lidiar con la carrera de hilos además de usar la palabra clave volatile?

sobes.tech AI

Respuesta de la IA

Los mutex (bloques o funciones sincronizadas, API Lock), variables atómicas (AtomicInteger, AtomicBoolean, etc.), semáforos, monitores, canales (para la transferencia de datos entre hilos), y el uso de estructuras de datos seguras para acceso paralelo (por ejemplo, ConcurrentHashMap, CopyOnWriteArrayList).

// Ejemplo con bloque synchronized
private final Object lock = new Object();
private int count = 0;

public void increment() {
    synchronized (lock) {
        count++;
    }
}
// Ejemplo con AtomicInteger
private final java.util.concurrent.atomic.AtomicInteger atomicCount = new java.util.concurrent.atomic.AtomicInteger(0);

public void incrementAtomic() {
    atomicCount.incrementAndGet();
}