当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《C++中进程间通信的最佳方式》经验,为你挑选了2个好方法。

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

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

而且我想问你建议哪个图书馆?顺便提一下,请不要建议MPI.编辑:在windows xp 32位下



1> Johannes Sch..:

一个词:Boost.InterProcess.如果真的需要快速,共享内存是可行的方法.由于操作系统在虚拟和物理地址之间进行通常的映射,因此几乎没有开销,因此数据不需要复制.您只需要了解并发问题.

对于实际发送关闭查询等命令,我会使用消息队列.我之前使用localhost网络编程来做这件事,并且在我知道boost之前使用了手动共享内存分配.该死的如果我需要重写应用程序,我会立即选择提升.Boost.InterProcess使您更容易.看看这个.


我以前的评论是错误的:为了从low-priv向high-priv发送消息(即允许low-priv打开由high-priv创建的队列),必须设置适当的权限对象,请参阅[this](http ://stackoverflow.com/questions/8758896/setting-permission-for-shared-memory-created-by-boost)

2> 小智..:

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

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有