【发布时间】:2019-02-24 09:16:59
【问题描述】:
我正在尝试使用 c++ boost 库在(boost)共享内存位置创建哈希图。到目前为止一切顺利,这一切都很好地记录在boost documentation 中。但是,我想在我创建的地图上有一个互斥锁,但我不明白这是否已经是 hashmap 容器的一部分。
我在文档中找不到此信息,并试图通读我很快迷路的提升源,即使谷歌也没有提供答案。当然,使用 boost 库实现互斥锁很容易,但我不想以冗余锁定机制告终。
如果有人能告诉我 boost 容器,尤其是 hashmap 是否包含锁定功能,那将非常有帮助。如果您可以将我指向 www 上我自己可以找到此信息的位置,则可以加分。
【问题讨论】:
-
不熟悉boost,而是使用标准容器...但是如果没有描述,很可能也没有实现线程安全。这样做会与 C++ 范式相矛盾:只提供真正需要的东西;如果哈希映射将在单线程环境中使用,那么这种保护将毫无代价地牺牲性能......
-
旁注:正如您提到的共享内存 - 也请查看 here。
-
感谢@Aconcagua。共享内存 hashmap 容器的来源似乎指向通用容器,所以听起来你是对的。当我完成代码后,我可以做一个小测试,我们肯定会知道。
标签: c++ boost shared-memory interprocess