【发布时间】:2013-01-14 09:22:08
【问题描述】:
我有一个关于如何设计以下系统的问题:
我的系统由多个监听环境的客户端组成。当超出音频阈值时,他们会将信息发送到服务器,该服务器有孩子在每个连接上监听。服务器需要来自所有客户端的信息来进行必要的计算。
当前服务器在 UNIX 中工作并且已经分叉了连接。他们独立工作。
我想做的是告诉父母(在服务器中)信息已经发送,现在是时候处理它了。我应该怎么做?
我正在考虑可能的不同方法:
- 在 Unix 中使用
signal()以某种方式告诉父母发生了什么事 - 转换为线程并使用一些等待和通知功能
信号更可取,但我不知道如何有效地做到这一点。因为在我的系统中可能会发生以下情况:
- 如果所有客户端都成功地将信息发送到服务器的子级,我如何有效地告诉父级我已准备好?不知道/我不确定它将如何处理它们。
- 服务器可能无法从所有客户端接收信息。因此,父母必须为所有孩子等待一段时间,但不能太久。所以我猜是某种计时器?
【问题讨论】:
-
您确定要对任务执行此操作吗?看起来您更像是想使用线程。不幸的是,你的问题不是很清楚。
-
我会添加更多信息,但问题已明确说明
-
请指定操作系统,解决方案可能会有所不同。
-
@KillianDS 我明白为什么这有点含糊,我真的很犹豫在这里发布这个,因为我知道有些人会觉得它不相关,因为没有直接问题。这就是为什么我将其命名为设计问题。但请阅读整个问题。该协议在标题中说明。问题中也说明了通信。一台服务器,许多客户端。服务器有单独处理每个连接的子节点。客户端向服务器发送信息。就这么简单。我将添加更多文字来解释更多系统。
-
@vladmihaisima 问题中已经描述了操作系统