我需要编写一个lib,它执行许多远程HTTP调用来获取内容。我可以按照here描述的那样做,但是有更好的方法(在性能方面)如何做到这一点?如果我按照示例中的描述进行操作,我总是创建一个URL
对象,该对象被解析等等 - 所以我认为它有点开销:基本URL总是相同的,只是单个参数总是不同的,例如:
http://www.example.com/?param=value1
http://www.example.com/?param=value2
http://www.example.com/?param=value3
and so on...
什么会更快/更好的方式?
答案 0 :(得分:3)
假设每个URL都有可能返回不同的资源,那就是全部。我会将每个URL放在它自己的线程中,这样就不会阻止网络问题。
但请确保不要创建太多线程。如果你有超过10个,我会说把URL放在一个队列中,并让每个线程在完成时处理队列中的下一个,这样你就不会用线程搞砸你的系统。
答案 1 :(得分:1)
使用HttpClient and normal form semantics;你可能只能覆盖参数值。
OTOH,与网络速度相比,我发现很难相信URL解析时间将成为门控问题。除此之外,您可以启动多个请求线程。