我有一个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
以这种方式使用时需要锁定吗?它仅对该线程是本地的,因此没有其他线程将访问它。