可以用C++std::vector同时处理来自多线程的push_back

Can C++ std::vector handle push_back from multithreads at the same time?

本文关键字:多线程 push back C++std vector 处理      更新时间:2023-10-16

我有一个多线程程序,每个线程都会返回一个字符串,然后将其存储在一个共享的向量容器中。我想知道std::vector是否有可能处理这种情况,或者我必须使用锁来保护它?

否。除了少数方法外,只有const方法是并发安全的。

(这些例外是迭代器获取/索引访问方法)

如果任何线程执行这样的非const访问,则没有其他线程可以执行任何访问。