我有两个 GUI 应用程序,它们使用共享内存(8 个内存实例,每个约 100MB)进行频繁的读/写操作,其中一个应用程序(“服务器”)写入内存,另一个从内存中读取。在 Windows 上,“服务器”应用程序使用函数创建共享内存CreateFileMappingA
,而其他应用程序使用OpenFileMappingA
. 通过 访问缓冲区MapViewOfFile
。锁定是通过命名互斥锁完成的。
现在我正在寻找一种在 macOS 上实现这一点的方法。XPC(尤其是xpc_shmem_map
)似乎很合适,但我并不完全理解它是如何工作的。从文档和其他来源(https://developer.apple.com/forums/thread/126716)看来,我们似乎总是(?)必须创建一个服务来充当两个应用程序之间的桥梁?或者一个应用程序可以充当“服务器”(如在 Windows 上)?
在 macOS(非沙盒)上以最少的复制在两个应用程序之间共享内存的最佳方式是什么?
问候,