c# - 内存屏障后和互锁操作后内存缓存一致性的时间

标签 c# multithreading caching memory-barriers interlocked

在互锁操作之后和调用内存屏障之后,内存缓存一致性(或“刷新”)的时间是否存在差异?让我们考虑一下在 C# 中——使用任何互锁操作与 Thread.MemoryBarrier()——生成的内存缓存刷新行为是否相同?

我相信这是有区别的。我正在解决一个似乎是由内存屏障后延迟刷新引起的业务案例(我们用互锁操作代替)。也有相当多的信息来源(包括 wikipedia )表明内存屏障不能保证操作的时间。

如果有兴趣,我可以链接更多引用资料或添加示例代码片段,但最初我想保持问题简短(因为我在 original question to this topic 中被否决了太多信息)

最佳答案

正如在 original question 中的回答: CAS(互锁)操作一直是(而且很可能会是)最快的缓存刷新器。

关于c# - 内存屏障后和互锁操作后内存缓存一致性的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24802009/

相关文章:

caching - 如何在 ARM Cortex-A7 的内核之间划分 L2 缓存?

c# - 如何从 Xamarin Forms 项目中调用 Android 和 iOS 项目中可用的方法?

c# - 我可以在 .cs 文件中实现什么 using 指令来让我使用 "WebPageExecutingBase.Href()"方法?

c# - 在 MVC 上使用嵌套模型 3 : How to update a table inside a table?(外键)

javascript - 实现多线程行为

php - CodeIgniter - 使用输出缓存时记录有关 session 的错误

caching - 相当于 Memcached 中的 Redis 哈希?

c# - var to dynamic 在编译时是已知的吗?

c# - 无法在 C# 中使用线程更新进度条

c++ - 从另一个线程唤醒 QThread::exec()