статическая переменная-член класса constexpr безопасна для многопоточного чтения? - PullRequest
0 голосов
/ 17 октября 2018

Безопасно ли иметь статическую переменную-член constexpr класса, читаемого одновременно несколькими потоками?Например:

class A{
  public:
    //some code here
  private:
    static constexpr std::size_t x_ = 99;

}

Если я создаю несколько объектов типа Class A, каждый из которых используется отдельным потоком, то безопасно для каждого потока C ++ 11 независимо читать переменную-член x_ без использования каких-либо механизмов блокировки?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Несколько одновременных чтений всегда безопасны для потоков, если не происходит одновременной записи.

0 голосов
/ 17 октября 2018

Да, это безопасно.Гонка данных происходит, когда у вас несколько потоков, и по крайней мере один из них является записывающим, и у вас нет синхронизации.Если ни один из ваших потоков не является писателем (а вы не можете, потому что это const), тогда у вас не может быть гонки данных.

...