假设我有一个对象 threadWork
初始化为:
vector< vector<myType> > threadWork(N_THREADS, vector<myType>());
然后我部署 N_THREADS
线程,每个通过 vector::push_back()
执行写入s 到 vector<myType>
的单独元素(它自己的 threadWork
对象) .
然后一个线程调用vector::clear()
关于 threadWork
的元素.
这是否会使其他线程对其元素的写入无效?
即可以 vector::clear()
调用了 threadWork
的一个元素改变
threadWork
的其他元素的内存分配,
结果线程可能正在写入无效地址?
最佳答案
这完全没问题。改变外部 vector 的一个元素不会以任何方式影响其他元素。
关于c++ - std::vector::clear()-ing 二维 vector 线程的内部 vector 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45536726/