const在C ++ 11中是否意味着线程安全?

时间:2013-01-02 18:43:20

标签: c++ c++11 thread-safety const c++-faq

我听说const C ++ 11 中意味着线程安全。这是真的吗?

这是否意味着const现在相当于 Java ' synchronized

他们的关键字耗尽了吗?

1 个答案:

答案 0 :(得分:0)

这是 K-ballo 答案的补充。

术语线程安全在这种情况下被滥用。正确的措辞是:常量函数意味着线程安全按位常量内部同步,如Herb Sutter (29: 43) 自己

同时从多个线程调用 const 函数应该是线程安全的,无需在另一个线程中同时调用非常量函数。 >

因此,const 函数不应该(并且不会在大多数情况下)真正是线程安全的,因为它可能会读取可能被另一个 非常量 功能。通常,这不是线程安全的,因为即使只有一个线程在写入(另一个线程在读取数据)也会发生数据争用。