std::vector
をthread_local
と宣言する利点はありますか?いつ誰かがthread_localとしてstd :: vectorを定義しますか?
static unique_ptr<std::vector<ObjectA>> vecVariable;
よう thread_localがpop_back()
と同期erase()
などの事業を行わないようstd::vector
を宣言するように。
コンテナを修正する一つのスレッドがある場合は、すべてのSTLコンテナのように、そこに同じコンテナを読んだり、書いて何の同時実行スレッドはならないので、私は、マルチスレッド/並行環境でvector
オブジェクトにerase()
とpop_back()
を行うことはできません。
ベクトルをthread_local
と宣言しても、コードの1つがクラッシュしています。私はロックの下でこれらの操作を行う必要があるかもしれないと理解していますが、私はちょうど誰かがとしてstd::vector
を定義するのを理解しようとしていますか?
同時に、変数はすべてthread_localとして定義されます。各スレッドはそれぞれ独自のインスタンスを持ちます。 – davmac