什么是并行编程.net 4.0中的"虚假共享"

NO *_*ame 5 .net false-sharing

任何人都可以在平行编程.net 4.0中与我分享"虚假共享"的知识吗?如果你能用一个例子来解释,那就太棒了.提前致谢 .我想要我的代码的最大性能.

Bri*_*eon 7

虚假共享是一个术语,用于描述各个处理器缓存处理不同数据集的情况,就好像它们是共享的一样.其原因与硬件缓存线如何工作的细节有关,并且可能因架构而异.关键在于,当各个处理器高速缓存的内容被标记为共享时,用于维持主存储器与其他单个处理器高速缓存之间的一致性的高速缓存一致性协议必须更加努力.当他们真的不应该被标记为共享时,这就是问题.您可以阅读本文以获取更多信息.