Linux GCC:
我有一个hash_map H,以及一个使用迭代器循环H的函数F,问题是函数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++;
}
答案 0 :(得分:0)
我无法看到哈希迭代会出现问题,但我怀疑分配给pList->pData[i]
是您存在多线程问题的地方。