Есть ли разница во времени согласованности (или «сброса») кэшей памяти после операций с блокировкой и после вызова барьеров памяти? Давайте рассмотрим на C # - используя любые операции Interlocked vs Thread.MemoryBarrier () - идентично ли результирующее поведение обновления кешей памяти или нет?
Я считаю, что есть разница. Я решал один бизнес-кейс, который, казалось, был вызван отложенным сбросом после барьера памяти (мы заменили его операцией Interlocked). Также существует довольно много источников информации (включая wikipedia), предполагающих, что барьеры памяти не гарантируют сроки проведения операций.
Я могу связать больше ссылок или добавить фрагмент кода примера, если интересно, но сначала я хочу, чтобы вопрос был коротким (так как я был отклонен за слишком много информации в моем исходный вопрос к этой теме)