首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++中进程间通信的最佳方式

问C++中进程间通信的最佳方式
EN

Stack Overflow用户
提问于 2008-12-16 18:22:53
回答 5查看 52.4K关注 0票数 43

我有两个进程,一个将查询其他data.There将在有限的时间内(每秒10000)和数据(>100mb)将传输的数据(>100mb)将是一个整数类型(双精度,整型)我的问题是在哪种方式连接这个进程?

共享内存、消息队列、lpc(本地过程调用)或其他...

还有,我想问一下你推荐的图书馆是哪一个?顺便说一下,请不要建议MPI。编辑:在windows xp 32位下

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-12-16 18:26:32

一个词:Boost.InterProcess。如果真的需要更快,那么共享内存就是最佳选择。您几乎没有任何开销,因为操作系统在虚拟地址和物理地址之间执行通常的映射,并且不需要对数据进行复制。你只需要注意并发问题。

对于实际发送像shutdown和query这样的命令,我会使用消息队列。在我了解boost之前,我以前使用过localhost网络编程,并使用过手动共享内存分配。该死的,如果我需要重写这个应用,我会立即选择boost。Boost.InterProcess让这一切变得更容易。看看这个。

票数 44
EN

Stack Overflow用户

发布于 2008-12-16 18:56:38

我将使用共享内存来存储数据,并使用消息队列来发送查询。

票数 7
EN

Stack Overflow用户

发布于 2008-12-16 19:05:55

我同意Marc的建议--我不会费心使用boost,除非您有可移植性问题,或者想做一些很酷的事情,比如在共享内存上映射标准容器类型(在这种情况下,我肯定会使用boost)。

否则,消息队列和共享内存就很容易处理了。

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

https://stackoverflow.com/questions/372198

复制
相关文章

相似问题

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