是++ std::atomic的原子
根据 c++0x 中的一个 Channel 9 E2E 视频(其中有 Herb Sutter),如果数字是 atomic
number++
是原子的。有人可以确认最终的 C++11 标准是这样的吗(让我们假装它已经最终确定了:))。
Acording to one Channel 9 E2E video(with Herb Sutter in it) in c++0x if number is atomic<int>
number++
is atomic. Can somebody confirm that is how it is in the final C++11 standard(lets pretend that it is finalized :)).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
标准已最终确定,
atomic
的所有标准积分特化上的每个操作都是原子的。这并不意味着所有涉及标准积分
atomic
的表达式都是原子的。是两个操作:
每个操作都是原子的,但加在一起就不是原子的。这就是事务/关键部分的用途。
The standard is finalised, and every operation on all the standard integral specialisations of
atomic<T>
is atomic.This doesn't mean all expressions involving standard integral
atomic<T>
are atomic.is two operations:
Each of them is atomic, but together they are not. This is what transactions/critical sections are for.
是的。
原子operator++
使用atomic::fetch_add
这是一个原子操作。http://www.open-std.org /jtc1/sc22/wg21/docs/papers/2011/n3242.pdf 页。 1127
Yes.
atomic<int> operator++
usesatomic<int>::fetch_add
which is an atomic operation.http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf p. 1127