现在有这样一个场景:
需要在短时间内向一个外部Service发送大量请求获取response,然后对每个response做一些处理。
目前使用的是异步方式来发送请求,并在callback里执行那些处理。
现在的问题是可以在1秒内把1万个请求全部发送出去,可是在接收response的时候,似乎是一个个执行的。也就是说处理完第一个response,然后才会接着处理第二个response,是一个串行的操作。如果每个内部操作需要10毫秒,那么1万个请求需要100秒才能处理完毕。
这种异步的操作能使用多线程的方式去处理callback吗?如何使用呢?或者有什么其他的方式来处理?
感觉这种场景还是比较常见的。
首先javascript单线程的。
你这个问题有点BT呀,你一下丢出去辣么多数据,还让人家处理的辣么优雅,怎么可能呢?
呃,补充几点,这个是.NET的程序,另外外部的Service有多个,也就是这1万个请求是分发到不同的Service上的,所以对方的处理能力是够的。
@Müller: 额,那我就不太明白了,不好意思啦。
如果你是.NET的程序,那么请求是有并发限制的。所以需要添加排除限制的代码。ServicePointManager.DefaultConnectionLimit = 512;