【发布时间】:2014-07-17 11:13:09
【问题描述】:
在互锁操作和调用内存屏障之后,内存缓存一致性(或“刷新”)的时间是否存在差异?让我们在 C# 中考虑 - 使用任何互锁操作与 Thread.MemoryBarrier() - 生成的内存缓存刷新行为是否相同?
我相信是有区别的。我正在解决一个似乎是由内存屏障后延迟刷新引起的业务案例(我们替换为互锁操作)。还有很多信息来源(包括wikipedia)表明内存屏障并不能保证操作的时间。
如果有兴趣,我可以链接更多参考资料或添加示例代码 sn-p,但最初我想保持问题简短(因为我的 original question to this topic 中的信息过多而被否决)
【问题讨论】:
标签: c# multithreading caching memory-barriers interlocked