【发布时间】:2013-01-25 17:31:54
【问题描述】:
我知道IPC的几种方式,例如:
- 共享内存
- DBus、COM等技术
- 通过文件
第一种直接将内存共享到 RAM 中的方法,但我无法立即知道公共内存的变化。
第二种方法很好,但不是跨平台解决方案。
第三种方法是跨平台的,通过平台 api,我可以立即了解公共内存的变化。但是读/写文件的时间可能很长。
是否存在跨平台解决方案,可以直接将内存共享到 RAM 中并且可以
立即发出关于公共内存变化的信号?
更新 1. 例如,是否存在用于文件 IPC 的协议和技术,通过数据库文件结构降低时间成本?
【问题讨论】:
-
我认为您的问题的简短回答是“不”。但是你想传达什么——数据的每个“部分”有多大,等等?
-
进程间信号量 + 共享内存足够可移植(POSIX 和 Windows),虽然不是一般可移植的。
-
不确定这是否会使任何事情更清楚。数据库倾向于使用文件来存储东西,但通信是通过管道、共享内存等完成的。
-
@Milovidov:是的,但前提是你需要这个
-
@Milovidov: Boost.Interprocess: Synchronization mechanisms
标签: c++ com ipc shared-memory dbus