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
?
Asked
Active
Viewed 1,882 times
4

DuckQueen
- 772
- 10
- 62
- 134
-
3No. A bitset is not a container. – Kerrek SB Aug 18 '16 at 09:09
1 Answers
4
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.

Zang MingJie
- 5,164
- 1
- 14
- 27