Strongly Happens Before de C++20: Desentrañando el Modelo de Memoria

2025-09-01

Este artículo profundiza en la relación "strongly happens before", recién introducida en C++20, que resuelve un problema complejo en el modelo de memoria de C++. Utilizando un ejemplo simple de programa multihilo, el autor explica progresivamente cómo el orden de modificación, el orden de coherencia y la relación "strongly happens before" restringen el orden de ejecución concurrente. El artículo también analiza por qué ciertas ejecuciones que aparentemente violan el modelo de memoria de C++ están permitidas en arquitecturas Power y explica cómo "strongly happens before" corrige estas inconsistencias, garantizando en última instancia un único orden total para todas las operaciones `memory_order::seq_cst`.

Desarrollo