Ist inkrementieren eine ganze Zahl atomar in x86? [Duplikat]
Diese Frage hat hier bereits eine Antwort:
Kann num ++ für 'int num' atomar sein? 13 AntwortenAuf einem Multicore-x86-Computer erhöht ein Thread, der auf core1 ausgeführt wird, eine Ganzzahlvariablea
Gleichzeitig erhöht der Thread auf Core 2 ihn ebenfalls. Vorausgesetzt, der Anfangswert vona
war 0, würde es immer sein2
schlussendlich? Oder könnte es einen anderen Wert haben? Annehmen, dassa
wird deklariert alsvolatile
und wir verwenden keine atomaren Variablen (wie atomic <> von C ++ und eingebaute atomare Operationen in gcc).
Wenn der Wert vona
wäre in der Tat immer 2 in einem solchen Fall, bedeutet das, dass along int
in x86-64 hätte auch die gleiche Eigenschaft, das heißt,a
wird am Ende immer 2 sein?