STL 语义上不提供任何强度的线程安全保证。
1、vector与map都不是线程安全的:同时读OK同时写NO== 同时读写==NO
2、vector读写情况:
vector一般情况下同时读写读没问题,但当vector预留内存空间不足,需要扩容导致的变量搬移时,读存在问题,同时写也存在问题,因此需要加锁,防止并发执行。
3、map读写情况:
map底层结构时红黑树,每插入一个节点,map对下中数据分布就会变,因此,不可以同时写、也不能同时读写。
参考资料:
1、C++ STL容器如何解决线程安全的问题?
2、[C/C++标准库][初级][std::vector的多线程读写问题]·