进程之间通信的有效(低延迟)方式?

Posted

技术标签:

【中文标题】进程之间通信的有效(低延迟)方式?【英文标题】:Efficient (low latency) ways to communicate between processes? 【发布时间】:2011-07-06 21:20:39 【问题描述】:

我有兴趣创建一个以大约 30hz 提供新数据的模块,并希望以尽可能低的延迟将其提供给应用程序(因为 UI 问题,应用程序需要在大约15-30Hz)。

我正在考虑为 android 提供系统服务或内核模块,我很好奇在我的新模块和其他数据消耗进程之间进行通信的不同方法。

如有必要,我可以随意更改 Android 框架或在本机层工作。

只看Binder API,它看起来相当重量级和缓慢。我是对的,还有哪些替代方案(例如管道文件?)

Binder IPC 调用是否涉及上下文切换?

在我看来,共享内存段将提供尽可能低的延迟。 Android 是否在 Java 级别对此提供支持?

【问题讨论】:

【参考方案1】:

如果你可以使用NDK,你可以使用共享的mmaped文件对象,linux围绕着这个

【讨论】:

以上是关于进程之间通信的有效(低延迟)方式?的主要内容,如果未能解决你的问题,请参考以下文章

Linux进程间通信—使用共享内存

Windows进程间的通信

Linux进程间通信——使用共享内存

Linux进程间通信(互斥锁、条件变量、读写锁、文件锁、信号灯)

深入浅出Binder进程间通信机制

进程通信