macOS进程间通信的常用技术汇总

macOS进程间通信的常用技术汇总

  1. 命令行传参。yyds
  2. 管道(pipe), 匿名管道, c++的技术,可以跨平台使用
    只能在父子进程间通信,由于是单向的管道,只能单方面传输数据。 如果需要双向传输,需要建立双向的两条管道才行
    匿名管道创建的文件描述符只能在fork出来的进程间传递和读取.
  3. 有名管道(FIFO)
    如果是NSTask 或其他手段创建出的进程,需要使用有名管道。
    具体集成文章:https://blog.csdn.net/goldWave01/article/details/135369065
  4. 共享内存shm(Shared Memory)
    适合大容量频繁数据进行传输,比如音视频数据。如果临时传输tag标记,也可以在跨平台使用。
    共享内存的机制,就是拿出一块虚拟地址空间来,映射到相同的物理内存中。这样这个进程写入的东西,另外一个进程马上就能看到了,都不需要拷贝来拷贝去,传来传去,大大提高了进程间通信的速度。(因为每个正常情况下进程本来访问的数据是自己的虚拟内存,而不是物理内存)
    Qt:QSharedMemory, Mac: <sys/mman.h>
  5. Socket, 跨平台,针对系统和是否跨电脑,选用不同的Socket 类型。
    常用的有如下两种
    UNIX Domain Socket VS TCP/IP Socket
    UNIX Domain Socket 具体集成文章:https://blog.csdn.net/goldWave01/article/details/135770238
    UNIX Domain Socket 跨平台(Windows和MacOS通用代码集成文章)https://blog.csdn.net/goldWave01/article/details/135775365
    TCP/IP Socket 具体集成文章:https://blog.csdn.net/goldWave01/article/details/135765223
  6. NSDistributedNotificationCenter, Mac 独有,适合数据不大且不频繁的通讯。 集成简单。
  7. Pasteboard 剪切板
  8. XPC,需要起XPC服务,并由根进程Launch在合适的时候进行拉起。比较安全,模块隔离。
    XPC 是一种 OS X 进程间通信技术,通过权限分离机制来对应用沙箱机制做了一个补充。其中,权限分离是根据每个部分所需的系统资源访问将应用程序分成多个部分,每个部分可以使用提前声明的权限(沙箱)。这种单个组件称为XPC 服务。
    XPC 服务的特点:权限分离 + 错误隔离
    具体集成文章:https://blog.csdn.net/goldWave01/article/details/135289034
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值