http://en.cppreference.com/w/cpp/container#Thread_safetyによれば、異なるスレッドからstd::vector
の異なる要素に書き込むことは安全です。同時のstd :: vector書き込みの効率
しかしvalue_type
はCPUのワードサイズ(またはhardware destructive interference size)よりも小さい場合、(std::vector<char>
)のように、これは、要素へのアクセスが、それは、スレッドの安全性を必要とせずに可能性よりも効率的であることを意味するのでしょうか?
たとえば、読み取り/書き込みアクセスはメモリフェンス/アトミック命令を意味しますか?
同じ要素への同時書き込みがないことを保証するのはプログラマの責任です。この標準では、何かを支援することを義務づけていません(例えば、原子性の保証はありません)。プログラマが責任を果たしたら、それだけで安全です。彼女がしなければ、それは安全ではない。 –