c++ string线程安全的总结如下:
C++11标准之前,C++标准中根本没有线程的概念,所以无从谈起线程
安全,特定实现的线程安全性不能适用于所有别的实现。C++11中标准也只能保证
并发的读操作是线程安全的。
特定的实现可能可以保证某些类的并发写入是线程安全的,比如微软的库:c9ceah3b。
但是GCC 的库则基本上只能保证开发者在正确用锁互斥的时候是线程安全的:
void thread_main () {
library_class_b *object_b = new library_class_b;
shared_object_a.add_b (object_b); // 在对象 shared_object_a上持有锁
shared_object_a.mutate (); // shared_object_a
}
所有的C++11之前的std库都不是线程安全的。需要自己加锁。至于C++11以后的,我就不太清楚了。