std::vector::clear()ing 二维向量线程的内部向量安全吗?

Is std::vector::clear()-ing an inner vector of a 2-D vector thread safe?

本文关键字:向量 线程 内部 安全 clear vector ing std 二维      更新时间:2023-10-16

假设我有一个对象threadWork初始化为:

vector< vector<myType> > threadWork(N_THREADS, vector<myType>());

然后,我部署N_THREADS线程,每个线程都通过vector::push_back()s 执行写入到threadWork的单独元素(它自己的vector<myType>对象(。

然后,一个线程在其元素threadWork上调用vector::clear()。 这是否会使其他线程对其元素的写入无效? 即vector::clear()可以调用threadWork改变的一个元素吗threadWork其他元素的内存分配, 这样线程可能会因此写入无效地址?

这完全没问题。更改外部向量的元素不会以任何方式影响其他元素。