参考答案
结论:std::map不是线程安全的,多线程并发读写需外部同步。实现方式:1) 粗粒度锁:用std::mutex包裹所有操作,写时独占,读时共享(shared_mutex);2) 细粒度分段锁:将key空间分片,每片独立锁,提升并发(如TBB concurrent_hash_map);3) 使用并发容器:如TBB的concurrent_unordered_map或C++并发TS;4) 只读场景:多个线程并发读安全,但任何写需与读互斥。要点:简单场景用mutex+lock_guard;高并发写用分段锁减少竞争;注意迭代器失效问题。