1

我目前正在用java编写一个爬虫,我被一些东西困住了。

在我的爬虫中,我有线程下载静态远程页面,使用HttpURLConnection. 我尝试下载一个具有不同参数的小文件(2kb)。连接的超时设置为 1 秒。

我注意到,如果我使用 100 个线程进行下载,我每秒发出的请求增加了 3 倍(每秒约 10k 个请求,使用 ),而当使用 500 个线程时,我成功地每秒发出“仅”4k 个请求.

我本来希望每秒至少能够处理与 100 个线程一样多的请求。

你能解释一下为什么会这样,以及是否有一些参数可以在某处激活以增加最大并行连接数?

谢谢 :)

4

1 回答 1

1

我认为这只是你的 cpu 的问题,在某些时候切换威胁比不等待单个连接所获得的时间更昂贵。

我会尝试通过设置上限来最大化并行连接

于 2013-10-25T00:26:04.237 回答