【发布时间】:2014-10-13 02:06:18
【问题描述】:
我有一个多线程程序,每个线程都会返回一个字符串,然后它将存储在一个共享的向量容器中。我想知道 std::vector 是否可以处理这种情况,或者我必须使用锁来保护它?
【问题讨论】:
-
你需要一个互斥体或类似的,向量不是线程安全的。
-
感谢您的帮助!
标签: c++
我有一个多线程程序,每个线程都会返回一个字符串,然后它将存储在一个共享的向量容器中。我想知道 std::vector 是否可以处理这种情况,或者我必须使用锁来保护它?
【问题讨论】:
标签: c++
没有。除了少数方法,只有 const 方法是并发安全的。
(那些例外是迭代器获取/索引访问方法)
如果任何线程进行这种非const 访问,则任何其他线程都不能进行任何访问。
【讨论】: