在我的服务器应用程序中,我想处理大量来自客户端的任务。客户端应用程序提交任务进行处理,处理每个任务都需要调用 Web 服务进行预处理,然后进行实际处理。
有人建议我有一个队列,我会将服务器接收的所有任务放入其中。然后一个线程从队列中获取一个任务并调用一个 Web 服务。如果一个线程阻塞 Web 服务,其他线程也可以调用,从队列中获取项目,可能会有 40 个线程执行此操作。在一个线程接收到来自 Web 服务的响应后,它将预处理的项目放在第二个队列中,另一个线程从该队列中获取任务进行处理。该队列将有 1 个线程(每个处理器将进一步扩展 - 因此在 4 核机器上可能有 4 个(或更多)线程)。
我相信这可以更有效地完成,而无需 40 个预定义线程进行 Web 服务调用并且可能有 1 个队列。我认为有多种选择可以更有效地做到这一点。NET。有什么建议么?
如何更好地实施这样的系统而不是特定于 .net 的系统可能是更广泛的问题。