让一个类的静态常量表达式成员变量被多个线程同时读取是否安全?例如:
class A{
public:
//some code here
private:
static constexpr std::size_t x_ = 99;
}
如果我创建了多个A
类类型的对象,每个对象都由不同的线程使用,那么每个C++11线程独立读取成员变量x_
而不使用任何锁定机制是否安全?
发布于 2018-10-17 05:38:01
是的,这是安全的。当您有多个线程,并且其中至少有一个线程是写入器,并且您没有同步时,就会发生数据竞争。如果你的线程都不是写线程(你不能写,因为它是const
),那么你就不会有数据竞争。
发布于 2018-10-17 05:38:57
只要不存在并发写入,多个并发读取始终是线程安全的。
https://stackoverflow.com/questions/52844350
复制相似问题