在多个进程中同时触发事件的Linux IPC机制? 我正在编写多个USB连接摄像头的C++数据采集软件。每个摄像头都有自己的流程实例,其中每个流程初始化摄像头,等待触发器并开始将帧流传输到磁盘,如下所示: initialize camera ... wait for recording trigger while (recording) { get_frames }

在多个进程中同时触发事件的Linux IPC机制? 我正在编写多个USB连接摄像头的C++数据采集软件。每个摄像头都有自己的流程实例,其中每个流程初始化摄像头,等待触发器并开始将帧流传输到磁盘,如下所示: initialize camera ... wait for recording trigger while (recording) { get_frames },c++,linux,multiprocessing,ipc,C++,Linux,Multiprocessing,Ipc,我应该使用什么样的IPC才能在所有进程中同时切换录制标志 触发器可以从另一个进程发送(例如,键盘监控或Raspberry Pi GPIO引脚上的硬件按钮)。是否可以量化/测量这些事件在每个进程中发生的同步程度?您可以使用System V信号量(而不是Posix信号量)来实现这一点。有一个操作可以将信号量值增加任意数量。只需增加摄像头的数量,这将唤醒等待信号量的所有进程。如果所有进程都可以共用一个文件描述符,则也可以在信号量模式下使用eventfd()。命名信号量应能工作:

我应该使用什么样的IPC才能在所有进程中同时切换录制标志


触发器可以从另一个进程发送(例如,键盘监控或Raspberry Pi GPIO引脚上的硬件按钮)。是否可以量化/测量这些事件在每个进程中发生的同步程度?

您可以使用System V信号量(而不是Posix信号量)来实现这一点。有一个操作可以将信号量值增加任意数量。只需增加摄像头的数量,这将唤醒等待信号量的所有进程。如果所有进程都可以共用一个文件描述符,则也可以在信号量模式下使用
eventfd()
。命名信号量应能工作: