首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不损失性能的情况下,在一个进程中写入向量,并在另一个进程中读取它

如何在不损失性能的情况下,在一个进程中写入向量,并在另一个进程中读取它
EN

Stack Overflow用户
提问于 2012-07-03 21:03:50
回答 2查看 204关注 0票数 0

我有一个矢量,它通过我编写的收集信息的过程不断地更新新信息(大约每秒5-20次)。我想编写一个能够检测向量变化的循环,然后读取信息并执行我为该事件编写的适当分析。然而,我知道像这样的多线程会出现很多问题,所以我很好奇做这样的事情最好的方法是什么。

该向量存储在一个公共类中,并由我们从一家金融公司获得的提要进行更新(更新的信息是期货指数)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-03 21:11:46

我在C++中看不到这样做的方法。如果您使用共享内存,您可以在其中存储vector,但是它的组件仍然指向本地的非共享内存块,从而阻止它被共享(您也许能够使用分配器技巧,但我不确定它是否有效)。

boost有一些共享内存功能,但我记得在一个问题中,我没有发现它有一些缺点。您很可能需要设计自己的共享内存数据结构,并提供一种机制来存储条件变量,这样客户机就可以等待它来确定何时有新数据可用。

编辑:我发现了询问boost::interprocess的问题

Is boost::interprocess ready for prime time?

票数 3
EN

Stack Overflow用户

发布于 2012-07-03 21:12:49

很抱歉,但在这种情况下,我建议更改设计:将向量设置为私有,添加一个数据馈送将使用的Setter函数(包装push_back()或其他函数),然后就完成了。还是我错过了什么?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11311531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档