首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >静态constexpr类成员变量对多线程读取安全吗?

静态constexpr类成员变量对多线程读取安全吗?
EN

Stack Overflow用户
提问于 2018-10-17 05:34:43
回答 2查看 253关注 0票数 3

让一个类的静态常量表达式成员变量被多个线程同时读取是否安全?例如:

代码语言:javascript
复制
class A{
  public:
    //some code here
  private:
    static constexpr std::size_t x_ = 99;

}

如果我创建了多个A类类型的对象,每个对象都由不同的线程使用,那么每个C++11线程独立读取成员变量x_而不使用任何锁定机制是否安全?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-17 05:38:01

是的,这是安全的。当您有多个线程,并且其中至少有一个线程是写入器,并且您没有同步时,就会发生数据竞争。如果你的线程都不是写线程(你不能写,因为它是const),那么你就不会有数据竞争。

票数 8
EN

Stack Overflow用户

发布于 2018-10-17 05:38:57

只要不存在并发写入,多个并发读取始终是线程安全的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52844350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档