1

我相信答案是肯定的,就像在 Java 中一样。

如果我错了,请纠正我。

如果我需要只使用互斥,我可以使用std::mutex和其他人。

如果我只需要顺序一致性而不需要互斥怎么办?可以用来做什么?

4

2 回答 2

1

是的 - 请参阅std::atomicwith 以memory_order_seq_cst了解顺序一致性。

于 2013-09-06T01:50:32.407 回答
0

对类型对象执行的单个操作std::atomic<whatever>是原子的,但仅此而已。std::atomic<int>::fetch_add()原子也是如此。但

std::atomic<int> x;
...
int tmp = x.load();
tmp += 1;
x.store(tmp);

只是顺序一致,而不是原子的。

于 2013-09-06T02:24:26.303 回答