更快/更好的方法如何进行多个远程内容提取

时间:2011-10-28 16:59:55

标签: java

我需要编写一个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...

什么会更快/更好的方式?

2 个答案:

答案 0 :(得分:3)

假设每个URL都有可能返回不同的资源,那就是全部。我会将每个URL放在它自己的线程中,这样就不会阻止网络问题。

但请确保不要创建太多线程。如果你有超过10个,我会说把URL放在一个队列中,并让每个线程在完成时处理队列中的下一个,这样你就不会用线程搞砸你的系统。

答案 1 :(得分:1)

使用HttpClient and normal form semantics;你可能只能覆盖参数值。

OTOH,与网络速度相比,我发现很难相信URL解析时间将成为门控问题。除此之外,您可以启动多个请求线程。