re: [翻译]把STL容器放入共享内存 弧光 2012-03-01 16:42
博主,你好!,首先谢谢你翻译并转载这篇文章,本人受益匪浅。对于博文中有一段内容不理解,不知道博主是否能解释或者有实际的例子代码?
以下部分为本人疑惑的地方:
把STL容器放入共享内存
假设进程A在共享内存中放入了数个容器,进程B如何找到这些容器呢?一个方法就是进程A把容器放在共享内存中的确定地址上(fixed offsets),则进程B可以从该已知地址上获取容器。另外一个改进点的办法是,进程A先在共享内存某块确定地址上放置一个map容器,然后进程A再创建其他容器,然后给其取个名字和地址一并保存到这个map容器里。进程B知道如何获取该保存了地址映射的map容器,然后同样再根据名字取得其他容器的地址。清单container_factory.hh是一个容器工厂类。类Pool的方法setContainer把map容器放置在一个已知地址上,方法getContainer可以重新获取这个map。该工厂的方法用来在共享内存中创建、获取和删除容器。当然,传递给容器工厂的容器需要以SharedAllocator作为allocator。
本人的联系方式:
msn:duoduono2002@hotmail.com
qq:93320694
mail:hewg@szkingdom.com
以上任何方式均能联系到本人,欢迎博主与其他看客来帮忙解决此疑问,谢谢!!!