进程间通信的问题

最近因为一个CE的程序模块要一直到Anroid下面.主要是一个进程间广播消息的Service模块。是通过内存映射文件和事件互斥来完成的. 我看了linux的互斥锁和条件锁 都只有一个pthread_cond_init的函数来创建.,如果确保在进程间的两个APP wait的是同一个锁/条件呢? 是否Init的第一个参数表示锁的代号,而且是系统空间的? 谢谢!

作者: hbuzzd   发布时间: 2011-04-28

CE中,Windows中有waitsigleobject,或者是内存文件映射,等等机制。

在Linux中,进程间通行的方式有很多。

按照你的需求,你的两个app是不相关的,所谓的不相关就是两个app进程之间是没有父子或者兄弟关系。

那么此时的通信方式比较多了。比如管道,socket.

那么最有效的办法是通过DBus来使得两个APP可以通信。

不过DBus虽然效率最高,但是可能入门比较慢。所以,如果不是特殊的需求,

Linux下面可以通过内存共享,管道,socket来完成。

作者: feiyinzilgd   发布时间: 2011-04-28

可以考虑把它的属性设置为PTHREAD_PROCESS_SHARED
即允许进程间共享

作者: justkk   发布时间: 2011-04-28