2016-08-18 5 views
3

catchline、または64ビットワードサイズで動作しているのであれば、ビットセット内の個々のビットを同時に処理できますか?私は10スレッドを持って、それぞれがthreadIdを持っていると言う。すべてのスレッドが同時にbits[threadId] = valueに設定できますか?ビットセットの個々のビットは、個々のスレッドごとにスレッドセーフであるため、一度に書き込むことはできますか?

+3

いいえ、ビットセットはコンテナではありません。 –

答えて

3

std::bitset::operator[]

データ競合

ビットセットは、(CONSTも非constバージョンもコンテナを変更する)アクセスされます。 非constバージョンによって返された参照は、ビットセット内のビットにアクセスしたり変更したりするために使用できます。 1つのビットを修正することは、ビットセット内の他のビットの未定数に影響を及ぼし、スレッドセーフではない異なるビットの同時アクセス/修正をレンダリングすることに注意してください。

関連する問題