原子操作在线程之间同步吗?我知道没有一个线程可以看到这样的操作被撤消,但是它会同步吗?例如,如果我在一个线程中写入一些变量,然后(在时域中)从另一个线程中读取,是否仍然可以看到旧值?
发布于 2021-04-20 16:21:48
原子在默认情况下提供顺序一致性(SC)。SC不需要遵守实时顺序。因此,在执行写操作(甚至是退役)之后,当不同的CPU执行加载操作时,它将看不到该写操作。因此,在实时顺序中,加载发生在写入之后,但在内存顺序中,它发生在写入之前。
有关更多信息,请参阅以下答案:Does 'volatile' guarantee that any thread reads the most recently written value?
https://stackoverflow.com/questions/67169637
复制相似问题