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

2024-03-14

我有两个进程,一个进程将查询另一个进程的数据。在有限的时间内(每秒 10000 个)将会有大量的查询,并且每秒将传输数据(>100 mb)。数据类型将是整数类型(双精度) ,整数) 我的问题是用什么方式连接这个过程?

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

我还想问一下你建议哪个图书馆?顺便说一句,请不要建议 MPI。 编辑:在Windows XP 32位下


一个词:增强进程间 https://www.boost.org/doc/libs/1_74_0/doc/html/interprocess.html。如果确实需要快速,共享内存是最佳选择。由于操作系统在虚拟地址和物理地址之间进行通常的映射,并且不需要数据复制,因此开销几乎为零。您只需要注意并发问题。

对于实际发送命令,如shutdown and query,我会使用消息队列。在我知道 boost 之前,我以前使用本地主机网络编程来做到这一点,并使用手动共享内存分配。该死,如果我需要重写应用程序,我会立即选择 boost。 Boost.InterProcess 使这对您来说更容易。一探究竟。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 进程间通信的最佳方式 的相关文章

随机推荐

  • 使用 RxJava 进行电子邮件登录验证,可观察对象发出两次

    我正在制作一个简单的登录表单 电子邮件和密码 来尝试增强我的反应式编程技能 我在让电子邮件字段验证按照我想要的方式工作时遇到一些问题 这是我的代码 final Observable
  • 如何在 Linux 中获取文件创建日期?

    我正在处理一批文件 这些文件包含同一对象在其生命周期不同时间的信息 对它们进行排序的唯一方法是按创建日期 我正在使用这个 char buffer has the name of file struct stat buf FILE tf tf
  • select2 将类添加到所选选项

    我想添加类option在 select2 中 所以在我单击建议列表项后 它将添加自定义类添加到选择多个到主要的选择结构 这是示例代码
  • Go/Golang sql.DB 在函数中的重用

    sql Open 返回 sql DB 类型的变量 我有一个函数可以调用其他 10 个函数 这些函数都需要进行数据库调用 是否更正确 更有效 将 sql DB 指针发送到每个函数 或者 在每个函数中创建一个新的 sql DB 对象 Meani
  • 是否可以捕获 Ctrl+C 信号 (SIGINT) 并以“延迟”方式运行清理函数?

    I want to capture the Ctrl C SIGINT signal sent from the console and print out some partial run totals You can use the o
  • Swift 相当于 Ruby 的“each_cons”

    Ruby 红宝石有每个缺点 https ruby doc org core 2 1 0 Enumerable html method i each cons可以像这样使用 class Pair def initialize left rig
  • 如果枚举无法适合无符号整型,会发生什么情况?

    根据要求芭丝谢芭 https stackoverflow com users 2380830 bathsheba并作为后续问题 如果枚举不能适合整型 会发生什么 https stackoverflow com questions 39620
  • 获取时区的日期时间偏移

    我有一个代码 需要查找中欧时区与 UTC 的当前偏移量 我的代码部署在azure应用程序服务中 var offset DateTimeOffset Now Offset Hours DateTimeOffset Now Offset Min
  • 使用 Android 5.0 Activity 转换到具有 ViewPager 的 Activity 时出现问题

    因此 我们尝试创建从 ListView 中的图像到 ViewPager 图库中的图像的跨活动图像过渡 在执行此过渡时 我们看到动画在 ViewPager 完成加载 绘制之前发生 这会导致 ViewPager 上的图像闪烁 从而使动画看起来很
  • IOptionsMonitor 与 IOptionsSnapshot 之间的区别

    根据这个答案 https stackoverflow com a 46570073 1987788 IOptionsMonitor在 DI 容器中注册为单例并且能够通过以下方式检测变化OnChange事件订阅 它有一个CurrentValu
  • 带有当前时间戳的 Spring Roo 日期字段

    大多数数据库允许具有当前时间戳的字段 充当创建时间戳 例如在 MySQL 中 CREATE TABLE t ts TIMESTAMP DEFAULT CURRENT TIMESTAMP 如何在 Spring Roo 中实现这一点 找不到提示
  • 使用大量 CPU 的 Visual Studio Code

    我运行的是 Windows 10 VSCode 即使在空闲时也会占用 26 30 的 CPU 我试过code disable extensions在 CMD 中检查扩展是否导致问题 但我的性能与扩展相同 当我使用 sublime text
  • 向 UIScrollView 内的 UIImageView 添加捏合/缩放效果

    我有一个非常基本的屏幕共享iPhone应用程序 我已经使用a成功地将捏合 缩放效果添加到我的应用程序中UIImageView里面一个UIScrollView The UIImageView定期接收来自PC的屏幕内容 一切工作正常 但一旦我滚
  • Node.js - 在继续代码之前等待多个异步调用完成

    所以基本上我有一个 for 循环 其中有一个异步函数 问题是程序只是在循环后继续 我希望它等到循环中调用的所有异步函数都完成后再继续代码 在我的代码中 bar 是一个 json 数组 其中包含其他 json 数组 function writ
  • CPU密集型任务的子进程?

    所以我开始在我正在做的项目中使用node js 当客户端发出请求时 我的 node js 服务器会从另一台服务器获取 json 然后将其重新格式化为新的 json 并提供给该客户端 然而 节点服务器从其他服务器获取的 json 可能非常大
  • 在运行时更改 web.config 连接字符串的最佳方法是什么?

    我对 ASP NET 世界还很陌生 因此在想出在运行时配置连接字符串并让整个应用程序使用该连接字符串的最佳方法时遇到了一些麻烦 以下是有关我计划构建的应用程序的更多信息 应用程序使用 Forms 身份验证 而不是 Windows 身份验证
  • 将多个应用添加到 Firebase 中的单个项目

    我正在对我的项目使用 firebase 通知 我的 firebase 项目正在处理 android 和 iOS 项目 我收到的通知与 android 和 iOS 相同 我已将 Android 应用程序添加到项目中 我想将 IOS 应用程序添
  • “发生了内部错误。”使用 X509Certificate2 加载 pfx 文件时

    我正在尝试使用自签名证书 c X509Certificate2 cert new X509Certificate2 Server MapPath App Data myhost pfx pass 在共享网络托管服务器上 我收到错误 Syst
  • Delphi - 运行时出现无效流格式错误

    德尔福6教授 我们有很多应用 这些程序的大小为 8 12 MB 在此期间 我们多次收到有关 无效流格式 错误的报告 我们使用共享的 Windows 或 Linux 文件夹来存储应用程序 用户通过链接从这些目录运行它们 这意味着操作系统正在对
  • C++ 进程间通信的最佳方式

    我有两个进程 一个进程将查询另一个进程的数据 在有限的时间内 每秒 10000 个 将会有大量的查询 并且每秒将传输数据 gt 100 mb 数据类型将是整数类型 双精度 整数 我的问题是用什么方式连接这个过程 共享内存 消息队列 lpc