一对多的IPC

我正在寻找一个ipc机制,这将允许从一个进程的数据更新的高吞吐量到许多(数千)。

“服务器”进程将负责高频更新数据结构。 更新后,我想通知“客户”进程的更新,并允许这些进程读取新的数据。

在Linux或FreeBSD环境下,这将是一个好方法吗?

我会推荐使用ZeroMQ 。 这是一个快速,轻量级,跨平台,跨语言的消息传递系统,已经做到了你所要求的一切。 它很容易使用,而且非常强大。 它可以在许多模式下操作,其中之一是一对多的消息传递(这在CS中称为广播)。

虽然不清楚您的设置限制或要求(同一台机器上的所有进程?),但看起来最通用的解决方案是使用平台无关和分布式的MPI 。 特别是它提供了广播功能 。

缺点是你必须在MPI API之后进行一些设计。