【发布时间】:2014-08-13 15:35:18
【问题描述】:
众所周知,对单个原子变量的修改形成一个全序。假设我们在挂钟时间 T 对某个原子变量v 进行了原子读取操作。那么,这个读取是否保证获取v 的当前值,它是由@987654323 的修改顺序中的最后一个写入的@ 在时间 T?换句话说,如果在自然时间里,原子写是在原子读之前完成的,并且中间没有其他写,那么读是否保证返回刚刚写的值?
我接受的答案是 Cubbi 对他的回答发表的第 6 条评论。
【问题讨论】:
-
这不是原子的全部意义吗?
-
在研究了记忆顺序可能涉及的复杂性之后,现在对我来说似乎并不明显。
-
@stijn 并行机器翻译的重点不就是没有全局同步时间吗?
-
@curiousguy '整个'点我不会说,但 AFAICT OP 使用墙上时间的概念只是为了表达之前/之后的概念
-
@stijn 之前/之后仅在给定线程(以及该线程中的信号)上完全定义。在线程之间有不同的非常抽象的顺序,它们必须与线程匹配,有时还必须相互匹配......
标签: memory c++11 synchronization atomic