Является ли инкремент целым атомарным в x86? [Дубликат]

This question already has an answer here:

Can num++ be atomic for 'int num'? 13 answers

На многоядерном компьютере с архитектурой x86, скажем, поток, выполняющийся на core1, увеличивает целочисленную переменнуюa в то же время поток на ядре 2 также увеличивает его. Учитывая, что начальное значениеa было 0, это всегда будет2 в конце? Или это может иметь какую-то другую ценность? Предположим, чтоa объявлен какvolatile и мы не используем атомарные переменные (такие как atomic & lt; & gt; в C ++ и встроенные атомарные операции в gcc).

Если значениеa действительно будет всегда 2 в таком случае, означает ли это, чтоlong int в x86-64 также будет иметь такое же свойство, то естьa всегда будет 2 в конце?

Ответы на вопрос(4)

Ваш ответ на вопрос