Mar*_*tin 5 c++ concurrency const std
例如,考虑使用Splay树实现的std :: map.这种树结构是可变的,每次访问地图进行读取时都会发生变化.当地图是常量时,谁必须确认并发读数的隔离,是由用户代码还是地图实现?
提问者知道,如果您有写入集合的线程,则用户必须管理同步锁定。
问题似乎是,如果同时线程仅读取集合,该标准是否可以保证线程安全。
我不确定旧的 C++ 标准是否对任何操作的线程安全有任何保证,但新标准会(注释中已给出部分,23.2.2)。事实上,大多数供应商现在确实保证并发读取之间的线程安全,尽管集合中包含的对象内的并发显然需要由用户处理。
以同样的方式,您将能够在 STL 集合上使用读写锁。
这些是堆栈溢出的相关问题: