我有一个stl::map<int, *msg> msg_container, wheremsg是一个类(这里不相关)。
有多个线程添加到 globalmsg_container中,并为同步访问设置了锁。
在单独的线程中,它需要msg_container在特定时间评估本地副本并对其执行检查。伪代码如下
map<int, *msg> msg_container;
map<int, *msg> msg_container_copy;
if (appropriate_time_is_reached)
{
msg_container_copy = msg_container;
//perform functions on msg_container_copy
}
根据我之前的问题,我知道我需要msg_container在阅读时锁定,如果有可能其他线程正在添加它。
msg_container_copy以这种方式使用时需要锁定吗?它仅对该线程是本地的,因此没有其他线程将访问它。