我有一个问题:是std :: map和std :: set线程安全吗?我在我的多线程应用程序中使用这些集合,有时映射并设置作品worng。是std :: map和std :: set线程安全吗?
谢谢!
upd。我的代码:
std::map<int, unsigned long> ClientTable;
int sendulong(int socket, char * data) //<--- Many threads uses this function
{
write(socket, ClientTable[socket]); //<--- ClientTable[[socket] <-- using of map
}
我怎么能解决线程安全的代码? 谢谢!
代码*错*。写入的调用有太多的'[',并且缺少'size'参数。在谈论多线程时,您应该清楚操作的组合是什么。尤其是所有线程是否只是读取,或者可能有线程同时写入容器。 – 2012-07-08 11:43:12
@DavidRodríguez-dribeas。感谢您的回答。我的组合:一个线程是编写的,一个是线程阅读的平均值。什么多线程方案会很好?我没有多线程编程经验( – Robert 2012-07-08 11:47:26
[我需要保护对多线程环境中STL容器的读访问吗?](http://stackoverflow.com/questions/187583/do-i-need-to -protect-read-access-to-stl-container-in-a-multithreading-environ) – 2012-07-08 12:41:22