由多个线程同时读取一个类的静态constexpr成员变量是否安全?例如:
class A{
public:
//some code here
private:
static constexpr std::size_t x_ = 99;
}
如果我创建了多个类A
类型的对象,每个对象都由不同的线程使用,则对于每个C ++ 11线程来说,独立读取成员变量x_
而不使用任何变量都是安全的锁定机制?
答案 0 :(得分:7)
是的,这很安全。当您有多个线程,并且其中至少一个线程是写程序并且没有同步时,就会发生数据争用。如果您的线程都不是编写者(并且您不能,因为它是const
),那么您就无法进行数据竞争。
答案 1 :(得分:5)
多次并行读取始终是线程安全的,只要不进行并行写入即可。