次のコードスレッドセーフです:C++さんのstd ::ベクトルとスレッド安全性
THREAD
std::vector<std::string> myCopy;
with_locked_mutex(m) {
myCopy = sharedCopy;
}
myCopy.clear() etc. // -- a
スレッドB言い換えれば
while(1) {
// do things ...
with_locked_mutex(m) {
sharedCopy.push_back(a); // -- b
}
}
、STDの意志COWセマンティクス:: vector(とstd :: stringのも、私は思う)aとbの間の競合条件を作成する?もしそうなら、それを防ぐために私ができることはありますか?
「ベクトル」にはCOWの意味がありますか? (また、それはセマンティクスの一部ではないので、 "COWとして実装された"のようになります。) –