Search code examples
c++c++11concurrencybitset

Are bitset individual bits thread safe for per individual thread to write into at a single time?


I wonder if we operate on a catchline or even 64bit word sizes can I concurrently operate on individual bits in a bitset? Say I have 10 threads, each has threadId. Can all threads concurrently set bits[threadId] = value?


Solution

  • std::bitset::operator[]

    Data races

    The bitset is accessed (neither the const nor the non-const versions modify the container). The reference returned by the non-const version can be used to access or modify the bits in the bitset. Notice that modifying a single bit may have effects on an undetermined number of other bits in the bitset, thus rendering concurrent access/modification of different bits not thread-safe.