【发布时间】:2013-07-17 07:16:39
【问题描述】:
我有一个stl::map<int, *msg> msg_container,其中msg 是一个类(此处不相关)。
有多个线程添加到全局msg_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
}
根据我的previous question,我知道我需要在阅读时锁定msg_container,如果有可能其他线程正在添加它。
这样使用msg_container_copy需要加锁吗?它仅对该线程是本地的,因此没有其他线程将访问它。
【问题讨论】:
标签: multithreading map stl thread-safety