共享内存 IPC 怎么设计:环形队列、原子操作、内存序和 futex,附完整代码与实测
共享内存只解决了数据搬运,同步、通知、崩溃和校验都要自己做。本文从零设计一条跨进程 SPSC 环形队列:下标怎么走、内存序怎么选、futex 怎么防丢失唤醒、进程被杀后怎么办,并给出完整 C 代码和与互斥锁、管道的实测对比。
[TAG] ALL TAGS
2 TAKES
共享内存只解决了数据搬运,同步、通知、崩溃和校验都要自己做。本文从零设计一条跨进程 SPSC 环形队列:下标怎么走、内存序怎么选、futex 怎么防丢失唤醒、进程被杀后怎么办,并给出完整 C 代码和与互斥锁、管道的实测对比。
同一条消息走管道、消息队列、Unix 域 socket、本机 TCP、Binder 和共享内存,数据各被拷贝几次,实测差多少;各自的优缺点和使用场景;放到端侧 AI 上,模型权重、摄像头帧、推理结果和控制命令又该分别走哪条通道。