3

由于 _ReadBarrier() 未被调用而导致错误的示例程序是什么?

关于 _ReadBarrier() 的 MSDN 文章:http: //msdn.microsoft.com/en-us/library/z055s48f (v=vs.120).aspx

4

1 回答 1

1

这篇由我最喜欢的博主撰写的帖子将解释你曾经遇到的关于阅读和写作障碍的一切:障碍(也以非常幽默和半开玩笑的方式)

这篇文章相当长,从同步的基础知识(互斥体)开始,然后越来越深入地介绍不同的轻量级同步方法,并详细讨论了障碍。每一步都有示例程序,包括它们的奇怪行为(以及由于 CPU 的行为而使这种行为在现代机器上表现出来的困难)。


顺便说一句,(参考 Hans 的评论)并不是只有 Itaniums 会遇到同步错误,而是 Itaniums 旨在充分利用完整的重新排序和并行化,假设开发/编译器知道他/她/它在做什么并且会在所有正确的地方使用障碍物。其他平台(如 x86)保证某些指令将按顺序执行,而其他平台(如 x86_64)不保证其他指令的顺序,但在实践中,主要出于理智和兼容性的原因,会(通常)按顺序执行它们(请参阅链接的博客文章)。

于 2012-03-31T06:47:51.650 回答