内存时间在内存屏障之后和联锁操作之后缓存一致性

时间:2014-07-17 11:13:09

标签: c# multithreading caching memory-barriers interlocked

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

我相信存在差异。我正在解决一个似乎是由内存屏障后延迟刷新引起的业务案例(我们用Interlocked操作取代)。还有相当多的信息来源(包括wikipedia)表明内存障碍并不能保证操作的时间安排。

如果感兴趣的话,我可以链接更多参考或添加示例代码段,但最初我想保持简短的问题(因为我在我的original question to this topic中投了太多信息)

1 个答案:

答案 0 :(得分:0)

正如original question所述:CAS(Interlocked)操作已经(并且很可能是)最快的缓存冲洗。