[英]loop through hash_map using iterator in multithreaded program
Linux GCC:
我有一个 hash_map H 和一个 function F 使用迭代器循环 H,问题是 function F 可以在多线程模式下执行。 我不知道为什么它工作不稳定,似乎迭代器在多线程程序中并不安全。 任何想法?
MY_HASH::iterator endIter = m_hash.end();
for ( hm_Iter = m_hash.begin( ); hm_Iter != endIter; hm_Iter++)
{
pList->pData[i].id = hm_Iter->second->id ;
pList->pData[i].data = hm_Iter->second->data ;
i++;
}
我看不出 hash 迭代会出现问题,但我怀疑分配给pList->pData[i]
是您的多线程问题存在的地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.