【发布时间】:2016-09-05 09:15:19
【问题描述】:
我需要分享一张地图:
map <string, vector< pair <string,string> > > repoMap;
在父进程和分叉子进程之间,以便他们每个人都知道何时 其中之一在地图中添加/删除元素。
请通过示例提供一个小而快速的解决方案。
【问题讨论】:
-
您需要一个共享内存分配器,并希望您的标准库实现足够好。不幸的是,标准不要求共享内存实际工作(例如,它不要求容器只在内部使用花哨的指针)。
-
使用 Boost.Interprocess: boost.org/doc/libs/1_61_0/doc/html/interprocess.html
-
std::map的第四个模板参数是分配器。您需要创建一个自定义分配器,它将在您预定义的共享内存中分配存储的对象。 -
C++11 多线程和良好的互斥管理怎么样?这是一个好的解决方案吗?
-
“请为我做我的工作和研究。”不,伙计..
标签: c++ data-structures shared-memory