Обеспечивает ли блокировка удаление операций чтения и записи из кешей? Если да, то как?

я читал эту статью MSDN о синхронизации потоков без блокировки ]. В статье, кажется, делается вывод, что если вы вводите блокировку перед доступом к общим переменным, эти переменные будут актуальными (по крайней мере, в .Net 2.0).

Я подумал, как это было возможно? lock в .Net - это просто произвольный объект, который все потоки проверяют перед доступом к памяти, но сама блокировка не знает, какие ячейки памяти используются.

Если у меня есть поток, обновляющий переменную, или даже весь фрагмент памяти. Каким образом эти обновления гарантированно будут сброшены из кешей ЦП при входе / выходе из блокировки? ВСЕ ли обращения к памяти эффективно становятся энергозависимыми внутри блокировки?

6
задан GazTheDestroyer 20 October 2011 в 09:01
поделиться