1

我有一个线程(线程 A),它不断迭代地图,比如 MapA。

现在有另一个线程 (ThreadB) 将元素插入 MapA。

我不从 MapA 中删除元素

这个操作会不会有并发问题?

4

1 回答 1

4

插入新项目时,线程安全/并发问题和无效迭代器之间存在区别。

STL 本质上不是线程安全的,所以除了从多个线程读取 STL 对象之外,请确保在执行其他任何操作时使用互斥锁。

但是,插入 astd::map不会使现有迭代器无效(请参阅插入到 STL 映射是否使其他现有迭代器无效?

于 2013-01-16T13:36:24.703 回答