¿El incremento es un entero atómico en x86? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
¿Puede num ++ ser atómico para 'int num'? 13 respuestasEn una máquina x86 multinúcleo, Say un hilo que se ejecuta en core1 incrementa una variable enteraa
al mismo tiempo, el hilo en el núcleo 2 también lo incrementa. Dado que el valor inicial dea
era 0, seria siempre2
¿en el final? ¿O podría tener algún otro valor? Asumir quea
se declara comovolatile
y no estamos utilizando variables atómicas (como atomic <> de C ++ y operaciones atómicas integradas en gcc).
Si el valor dea
de hecho sería siempre 2 en tal caso, ¿significa eso que unlong int
en x86-64 también tendría la misma propiedad, es decir,a
¿Siempre habrá 2 al final?