我只想收集一些关于原子操作要求的evidence-based信息。
例如(也许不对,只是一些例子)
希望能接受和帮助:)
发布于 2012-04-23 03:03:06
来自专业C++的报价
对简单标量变量的简单赋值通常不需要同步。例如,在x86上,32位对齐值在硬件级别被原子地处理,单个事务不需要显式同步。例如,将布尔值设置为false以停止线程不需要同步,但是像++ -或任何给定op的op=之类的操作都需要同步。
这并不能回答你所有的问题,但这是你在寻找的一部分吗?
发布于 2012-04-23 08:54:21
如果您正在寻找芯片级的保证,您将需要查阅那些芯片的技术手册。在英特尔上,请查看S软件开发人员手册,它包含内存排序的compelete信息。在这种情况下,原子的定义包括内存排序保证。基本保证是在“第3卷: 8.2内存排序”中列出的,其中还有一些函数被标记为以“原子”方式运行。
注完整的细节是复杂的,需要对芯片有一个详细的理解。这就是为什么C和C++现在将它们封装在更高级别的保证中的原因。当然,你可以参考这些标准,看看它们的保证。
https://stackoverflow.com/questions/10274189
复制相似问题