std:map
我在多线程应用程序中使用时遇到问题。当线程写入该对象时,我需要锁定地图对象。并行读取此对象的另一个线程应该购物,直到写入过程完成。
示例代码:
std::map<int, int> ClientTable;
int write_function() //<-- only one thread uses this function
{
while(true)
{
//lock ClientTable
ClientTable.insert(std::pair<int, int>(1, 2)); // random values
//unlock ClientTable
//thread sleeps for 2 secs
}
}
int read_function() //<--- many thread uses this function
{
while(true)
{
int test = ClientTable[2]; // just for test
}
}
如何锁定这个 std::map 对象并正确同步这个线程?