共享内存 IPC 怎么设计:环形队列、原子操作、内存序和 futex,附完整代码与实测
共享内存只解决了数据搬运,同步、通知、崩溃和校验都要自己做。本文从零设计一条跨进程 SPSC 环形队列:下标怎么走、内存序怎么选、futex 怎么防丢失唤醒、进程被杀后怎么办,并给出完整 C 代码和与互斥锁、管道的实测对比。
[TAG] ALL TAGS
1 TAKES
共享内存只解决了数据搬运,同步、通知、崩溃和校验都要自己做。本文从零设计一条跨进程 SPSC 环形队列:下标怎么走、内存序怎么选、futex 怎么防丢失唤醒、进程被杀后怎么办,并给出完整 C 代码和与互斥锁、管道的实测对比。