map加锁
for (std::map<int, ST_TRANS_INFO>::iterator iter = m_TransInfo.begin(); iter != m_TransInfo.end(); )
{
time_t tCurrent = time(NULL);
if (difftime(tCurrent, iter->second.tRtcpArrived) >= 30.0f)
{
m_TransInfo.erase(iter++);
}
else
{
++iter;
}
}
我仅需要在difftime为true的时候对map进行write,请问如何加锁啊,加在最外层,如果迭代很频繁又不进difftime就感觉很浪费资源,请问有什么好办法吗
[解决办法]
[解决办法]
- C/C++ code
if (difftime(tCurrent, iter->second.tRtcpArrived) >= 30.0f) { Lock(); m_TransInfo.erase(iter++); UnLock(); }