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.

版权声明:本文博主原创文章,博客,未经同意不得转载。

05-11 17:08