Un programa concurrente simple desafía la intuición

2025-01-18

Un programa concurrente aparentemente simple, que involucra dos procesos incrementando una variable 'n' diez veces cada uno, produjo un resultado sorprendente cuando se analizó con un verificador de modelos. Intuitivamente, el valor final de 'n' debería estar entre 10 y 20. Sin embargo, un entrelazamiento extremo de los procesos resultó en que 'n' fuera 2. Aunque un programa en Go que intentó reproducir este comportamiento falló, destacando la rareza de tales entrelazamientos extremos en la práctica, el ejemplo subraya las complejidades y la naturaleza contraintuitiva de la programación concurrente.