我想知道哪个是在多线程应用程序中维护大量小型TCP连接的最佳解决方案,而不会在一段时间后锁定。
假设我们必须以多线程的方式访问大量的http网站(比如不同域名、服务器等上的~200000个)。that类最适合做最安全的连接(我的意思是最具抗锁性,不是多线程锁,而是TCP连接,它“不会对任何事情做出反应”)。HttpURLConnection & BufferedReader会在设置连接和读取超时的情况下执行此工作吗?当我使用简单解决方案时,我看到了这一点:
URL url = new URL( xurl );
BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream() ) );所有线程在2-3小时后都被锁定/死掉。
最好是让像10这样的常量线程一直运行,并请求url从主线程获取,或者更好地为每个url创建一个线程,然后以某种方式杀死它,如果它在一段时间后不响应?(如何杀伤子线程?)
发布于 2011-08-08 15:25:45
好吧,如果是HTTP连接,我真的怀疑你能不能缓存它们。因为使HTTP连接保持活动状态不仅仅是在客户端,它还需要服务器端的支持。大多数情况下,服务器会在超时时间(在服务器中配置)后关闭连接。因此,请检查在服务器端配置的最大超时时间,以及您希望将连接缓存多长时间。
https://stackoverflow.com/questions/6978835
复制相似问题