用一个插入线程和一个读线程映射并发性

std::map concurrency with one inserter thread and one reader thread

本文关键字:一个 线程 并发 映射 插入      更新时间:2023-10-16

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

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

我不删除MapA中的元素

这个操作会有并发性问题吗?

在插入新项时,线程安全/并发问题和使迭代器失效是有区别的。

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

然而,插入到std::map并不会使现有的迭代器失效(参见插入到STL映射是否会使其他现有的迭代器失效?)

相关文章: