我有一個問題:是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