c++ - std::vector::clear()-ing 二维 vector 线程的内部 vector 是否安全?

标签 c++ multithreading vector data-race

假设我有一个对象 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/

相关文章:

c++ - QTabWidget - 如何分别编辑每个小部件?

java - 在Java中收到websocket消息后取消TimerTask运行的filewatcher

Matlab 图另存为(矢量)EMF 但渲染为栅格

c++ - 如何在 C++ 中填充 glm::vec3

android - 使用矢量图像扩展应用程序平台

c++ - 如何从文本文件中读取并在 C 中拆分句子

C++ 使用 std 从文件读取

android - Android Framework 中的 cpp 方法所花费的时间

java - 无法刷新 JFrame

c++ - GDB 在非线程应用程序中显示 1 个线程