Есть ли преимущества в объявлении std::vector
как thread_local
? какКогда кто-то определит std :: vector как thread_local?
static unique_ptr<std::vector<ObjectA>> vecVariable;
как объявление std::vector
, как thread_local не делает свою работу, как и pop_back()
erase()
синхронизированы.
Как и в любой STL контейнер, если есть одна нить модификации контейнера, то не должно быть никаких параллельных потоков чтения или записи и тот же контейнер, так что я не могу сделать erase()
и pop_back()
на vector
объекта в параллельной/многопоточной среде ,
Даже если я объявляю вектор thread_local
, мой код разбивается на одну из операций. Я понимаю, что мне может понадобиться делать эти операции под замком, но я просто пытаюсь понять, когда кто-то определит std::vector
как thread_local
?
В то же время они определяли бы любую переменную как thread_local - когда каждый поток должен иметь свой собственный экземпляр. – davmac