繁体   English   中英

在多线程程序中使用迭代器遍历 hash_map

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM