Modelo de memoria Java y la semántica de volatile
El Java Memory Model (JMM) es la especificación que define cómo los hilos interactúan con la memoria. No se trata de una estructura física, sino de un conjunto de reglas que el compilador, la JVM y el hardware deben cumplir para garantizar un comportamiento predecible en entornos concurrentes.
Reglas básicas del JMM
Antes de liberar un candado ...
Publicado el 7-2 01:03
CopyOnWriteArrayList: Estrategias de Concurrencia para Lecturas Frecuentes
Introducción al Mecanismo de Copia al Escribir
La estrategia de Copia al Escribir (CopyOnWrite, COW) es una técnica de optimización en diseño de software. Su principio fundamental permite que múltiples invocadores compartan un recurso común hasta que uno intente modificarlo. En ese momento, se crea una copia privada para la modificación, mientr ...
Publicado el 6-20 16:41
El Reordenamiento de Acceso a Memoria en Java y su Impacto en la Concurrencia
Comprendiendo el Reordenamiento de Instrucciones en Java
El reordenamiento de instrucciones es un fenómeno clave en los sistemas informáticos modernos que puede tener implicaciones significativas, especialmente en entornos de programación concurrente. Se refiere a la alteración del orden de ejecución de las instrucciones con respecto al orden e ...
Publicado el 6-15 00:33
Patrón de Doble Verificación (DCL) y su Solución
El patrón de Doble Verificación Bloqueada (o DCL por sus siglas en inglés) es una implementación errónea que intenta optimizar la inicialización perezosa de instancias únicas (singletons) para evitar la sobrecarga de sincronización en cada acceso. Una implementación correcta, aunque sincrónica, sería:
public class FabricaCorrecta {
private s ...
Publicado el 6-9 05:08
Demostración de visibilidad, atomicidad y orden en Java mediante volatile y synchronized
Introducción
Este artículo explora los conceptos de visibilidad, atomicidad y orden en Java mediante ejemplos de código que utilizan las palabras clave volatile y synchronized. Analizaremos cómo estos modificadores afectan el comportamiento de los hilos en un entorno concurrente.
Visibilidad
1.1 Prueba de falta de visibilidad
La falta de vis ...
Publicado el 6-2 03:38