【问题标题】:Quickly Inter-Process Communication with signal about changes通过有关更改的信号快速进行进程间通信
【发布时间】:2013-01-25 17:31:54
【问题描述】:

我知道IPC的几种方式,例如:

  1. 共享内存
  2. DBus、COM等技术
  3. 通过文件

第一种直接将内存共享到 RAM 中的方法,但我无法立即知道公共内存的变化。

第二种方法很好,但不是跨平台解决方案。

第三种方法是跨平台的,通过平台 api,我可以立即了解公共内存的变化。但是读/写文件的时间可能很长。

是否存在跨平台解决方案,可以直接将内存共享到 RAM 中并且可以
立即发出关于公共内存变化的信号?

更新 1. 例如,是否存在用于文件 IPC 的协议和技术,通过数据库文件结构降低时间成本?

【问题讨论】:

  • 认为您的问题的简短回答是“不”。但是你想传达什么——数据的每个“部分”有多大,等等?
  • 进程间信号量 + 共享内存足够可移植(POSIX 和 Windows),虽然不是一般可移植的。
  • 不确定这是否会使任何事情更清楚。数据库倾向于使用文件来存储东西,但通信是通过管道、共享内存等完成的。
  • @Milovidov:是的,但前提是你需要这个

标签: c++ com ipc shared-memory dbus


【解决方案1】:

我找到了一个解决方案http://www.qtcentre.org/wiki/index.php?title=SingleApplication

此解决方案使用共享内存进行数据存储,并在 Windows 命名管道、Unix 本地域套接字上使用,用于立即发送有关更改的消息。

【讨论】:

  • 请将您的答案标记为有用,以便将主题标记为“已回答”。谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-06-19
  • 2017-09-10
  • 1970-01-01
  • 2013-04-28
  • 2011-01-14
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
相关资源
最近更新 更多