これはスレッドセーフティstd::map
です。現在、同時読み取りはスレッドセーフですが、書き込みは実行されません。私の質問は、毎回マップにユニークな要素を追加すると、スレッドセーフなのでしょうか?私はこのstd:map<int, std::string> myMap
ようなマップを持っているとした場合C++マップのスレッドセーフ
ので、例えば、私は常に新しいキーを追加し、決して既存のキーと値を変更していない、それはスレッドセーフになりますか?
もっと重要なのは、私にランダムなランタイム動作を与えますか?
新しいキーを追加することも変更と見なされますか?追加中にキーが常に異なる場合、メモリの独立した部分を変更するため、スレッドセーフではないでしょうか?
おかげもちろん シブ
いいえ、これはスレッドセーフではありません。なぜなら、2つのスレッドが同じ場所に入る2つの(一意の)アイテムを同時に追加できるからです。 –
標準のコンテナから期待できるスレッド安全性の唯一の種類は、コンテナが決して変更されず、各スレッドが** different **要素にアクセス(読み取りまたは書き込み)した場合、それはうまくいくはずです。 –