std::vector::clear()ing 二维向量线程的内部向量安全吗?
Is std::vector::clear()-ing an inner vector of a 2-D vector thread safe?
假设我有一个对象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
其他元素的内存分配, 这样线程可能会因此写入无效地址?
这完全没问题。更改外部向量的元素不会以任何方式影响其他元素。
相关文章:
- 为什么一个向量上的多线程操作很慢
- C++在不同线程中改变向量
- C++:在多个线程中访问同一数组/向量的不同单元格是否会产生数据竞赛?
- 在线程函数中处理数据向量时进行线程竞速
- std::vector::clear()ing 二维向量线程的内部向量安全吗?
- 在不同的线程中调用向量析构函数或清除
- 为同一向量C++运行多个线程时出现分段错误
- 具有多线程支持的 RenderClass,将函数调用推送到向量以在另一个线程上调用
- C++中向量和列表的非写入成员函数的线程安全性
- 在向量上声明缩减,在 1 个线程上运行给出的结果与没有 openmp 的结果不同
- 为什么向量"emplace_back"在多个线程中的行为比单个线程慢得多
- 由 std::shared_ptr 向量指向的数据之间的线程同步
- 在 Valgrind 输出中仍然可以访问 std 线程向量的块
- 在为工作线程访问 lambda 中捕获的向量列表中的元素引用时,是否需要互斥锁?
- 从线程输出简单向量
- 在多线程中添加到向量
- 将类Cotaining std ::线程添加到向量
- C++线程的向量在连接时随机崩溃
- 是一个std ::向量线程,我的目的是安全的
- <向量>线程安全在不同位置读取/写入吗?