2013-07-16 70 views
0

我知道,多线程读取访问的std::se吨或std::map是安全的,但如何做拷贝操作,如是从std :: map或std :: set线程安全的复制吗?

std::map<int, int> node_info; 
int node = 2; 
int node_value; 

if (node_info.find(node) != node_info.end()) 
    current_val = map_of_val[node].front(); 

我,当我使用.push().pop()的同步访问锁定的地图,但我的代码行为不正常,我想知道是否知道这是否导致不稳定。

回答

1

锁定push()pop()是不够的。如果一个线程可以从容器中读取而另一个线程正在修改它,则需要锁定两个

相关问题