Czy inkrementacja liczby atomowej w x86 jest całkowita? [duplikować]
To pytanie ma już tutaj odpowiedź:
Czy num ++ może być atomowy dla „int num”? 13 odpowiedziNa wielordzeniowej maszynie x86 Powiedzmy, że wątek wykonujący na core1 zwiększa zmienną całkowitąa
jednocześnie wątek na rdzeniu 2 również go zwiększa. Biorąc pod uwagę, że początkowa wartośća
było 0, czy zawsze będzie2
na końcu? Czy może mieć inną wartość? Zakładać, żea
jest zadeklarowany jakovolatile
i nie używamy zmiennych atomowych (takich jak atomowy <> C ++ i wbudowanych w operacje atomowe w gcc).
Jeśli wartośća
w takim przypadku zawsze będzie zawsze 2, czy to oznacza, że along int
w x86-64 miałaby również tę samą właściwość, czylia
w końcu zawsze będzie 2?