Java 更多线程=每秒更少的请求?
我目前正在用java编写一个爬虫程序,我被一些东西卡住了 在我的爬虫程序中,我有线程使用Java 更多线程=每秒更少的请求?,java,multithreading,http,httpurlconnection,Java,Multithreading,Http,Httpurlconnection,我目前正在用java编写一个爬虫程序,我被一些东西卡住了 在我的爬虫程序中,我有线程使用HttpURLConnection下载静态远程页面。 我试着下载一个小文件(2kb)和不同的参数。连接的超时设置为1s 我注意到,如果我使用100个线程进行下载,我每秒成功地发出了3倍多的请求(每秒约10k个请求,使用),而当使用500个线程时,我每秒成功地发出“仅”4k个请求 我希望每秒至少能够执行100个线程的请求 你能解释一下为什么会出现这种情况,以及是否有一些参数需要激活以增加最大并联连接数吗 谢谢:
HttpURLConnection
下载静态远程页面。
我试着下载一个小文件(2kb)和不同的参数。连接的超时设置为1s
我注意到,如果我使用100个线程进行下载,我每秒成功地发出了3倍多的请求(每秒约10k个请求,使用),而当使用500个线程时,我每秒成功地发出“仅”4k个请求
我希望每秒至少能够执行100个线程的请求
你能解释一下为什么会出现这种情况,以及是否有一些参数需要激活以增加最大并联连接数吗
谢谢:)我认为这只是你的cpu的问题,在某一点上,切换威胁比不等待单一连接所获得的时间更昂贵
我会通过设置上限来最大化parralel连接我认为这只是cpu的问题,在某一点上,切换威胁比不等待单个连接所获得的时间更昂贵
我会通过设置一个上限来最大化parralel连接。问题是CPU使用率在20%左右,所以我想这还不是阻塞问题,对吧?问题是CPU使用率在20%左右,所以我想这还不是阻塞问题,对吗?