У моего коллеги и я есть аргумент в пользу атомарности чтения двойника по архитектуре Intel с использованием С#.NET 4.0. Он утверждает, что мы должны использовать метод Interlocked.Exchange
для записи в double
, но просто чтение двойного значения (в каком-то другом потоке) гарантировано будет атомарным. Мой аргумент заключается в том, что .NET не гарантирует эту атомарность, но его аргумент заключается в том, что на архитектуре Intel это гарантировано (возможно, не на AMD, SPARC и т.д.).
Любые эксперты Intel и .NET обмениваются некоторыми источниками света на этом?
Читатель в порядке, чтобы прочитать устаревшее (предыдущее) значение, но не неправильное значение (частичное чтение до и после записи, дающее значение мусора).