Czy aktualizacja podwójnej operacji atomowej
W Javie aktualizacja zmiennej podwójnej i długiej nie może być atomowa, ponieważ podwójne / długie są traktowane jako dwie oddzielne 32-bitowe zmienne.
http://java.sun.com/docs/books/jls/second_edition/html/memory.doc.html#28733
W C ++, jeśli używam 32-bitowego kompilatora Intel Processor + Microsoft Visual C ++, aktualizuję operację podwójną (8 bajtów) atomową?
Nie mogę znaleźć wiele wzmianek o tym zachowaniu.
Kiedy mówię „zmienna atomowa”, mam na myśli to, co mam na myśli:
Wątek A próbuje zapisać 1 do zmiennej x. Wątek B próbuje zapisać 2 do zmiennej x.
Otrzymamy wartość 1 lub 2 ze zmiennej x, ale nie wartość niezdefiniowaną.