Mac OS在下面IPC方式很多类型,大约如下。
1. Mach API
2. CFMessagePort
3. Distributed Objects (DO) NSDistributedNotificationCenter
4. Apple events
5. UNIX domain sockets
6. Internet sockets 或者 XPC(NSConnection)
7. Memory Mapping
还有Pipe,NSTask,消息队列,远程过程调用,通知,信号量和锁设置之类
第1种太底层,非常少有人用苹果也不推荐 .
第2。3,4种是苹果提供的较为高层的通讯机制 .
第5,6种大家应该都知道,用sockets方法离散度。移植性更好。
5和6有一些差别,5使用unix文件系统作为通讯媒介,能够使用unix文件权限系统做通讯限制。它的另外一个名字就叫ipc sokets。6能够做机器间通讯做本地ipc也能够,只是要额外做一些努力。
第7种适合数据比較大的情况.
1. 假如你的进程间通讯不频繁。仅仅是发送一些异步信号。DO是非常好的选择,也就是NSDistributedNotificationCenter.
2. 假设你的进程间通讯频繁。但数据量不大,须要响应度高,domain sockets非常好.
3. 最后假设进程间通讯频繁,数据流巨大比如音频,图片等。须希望real-time级别, 选Memory Mapping.
版权声明:本文博主原创文章,博客,未经同意不得转载。