O incremento é um número inteiro atômico em x86? [duplicado]
Esta questão já tem uma resposta aqui:
Um num ++ pode ser atômico para 'int num'? 13 respostasEm uma máquina x86 multicore, Digamos que uma thread executando em core1 incremente uma variável inteiraa
ao mesmo tempo thread no core 2 também incrementa. Dado que o valor inicial dea
era 0, seria sempre2
No final? Ou poderia ter algum outro valor? Assuma issoa
é declarado comovolatile
e nós não estamos usando variáveis atômicas (como atômica <> de C ++ e construídas em operações atômicas no gcc).
Se o valor dea
de fato seria sempre 2 em tal evento, isso significa que umlong int
em x86-64 também teria a mesma propriedade, isto é,a
será sempre 2 no final?