[英]Is this function with atomic thread-safe
我正在尝试学习如何使用原子:)
class foo {
static std::atomic<uint32_t> count_;
uint32 increase_and_get() {
uint32 t = count_++;
return t;
}
}
函数increase_and_get()
线程安全的吗?
是的,这很安全:增量是原子的,并且本地t
不能被并发线程更改。 您可以进一步简化代码,以完全消除临时变量:
uint32 increase_and_get() {
return count_++;
}
是的,这将是线程安全的。 假设在std::atomic
实现中当然没有错误-但是通常不难正确。
这正是std::atomic
要做的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.