我有一个关于如何设计以下系统的问题:
我的系统由几个监听环境的客户端组成。当超出音频阈值时,他们会将信息发送到服务器,该服务器有孩子在每个连接上监听。服务器需要来自所有客户端的信息来进行必要的计算。
当前,服务器在 UNIX 中工作,并已分叉连接。他们独立工作。
我想做的是告诉父母(在服务器中)信息已经发送,现在是时候处理它了。我应该怎么做?
我正在考虑可能的不同方法:
- 在 Unix 中使用
signal()
以某种方式告诉父母发生了什么事 - 转换为线程并使用一些等待和通知功能
信号是可取的,但我无法弄清楚如何有效地做到这一点。因为在我的系统中可能会发生以下情况:
- 如果所有客户端都成功地将信息发送到服务器的子节点,我如何以有效的方式告诉父节点我已准备好?不知道/我不确定它将如何处理它们。
- 服务器可能不会收到来自所有客户端的信息。因此,父母必须为所有孩子等待一段时间,但不能太久。所以我猜是某种计时器?