gpt4 book ai didi

java - Java中维护大量连接的最佳方法

转载 作者:行者123 更新时间:2023-12-01 15:46:04 24 4
gpt4 key购买 nike

我想知道在多线程应用程序中维护大量小型 TCP 连接而不在一段时间后锁定的最佳解决方案是什么。

假设,我们必须在多线程中访问许多 http 网站(例如不同域、服务器等上的约 200 000 个)。哪些类是最好的最安全的连接(我的意思是大多数锁抵抗,不是多线程锁,而是“不会对任何事情使用react”的TCP连接)。 HttpURLConnection 和 BufferedReader 会通过设置的连接和读取超时来完成工作吗?我在使用简单的解决方案时看到了这一点:

URL url = new URL( xurl );
BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream() ) );

所有线程在 2-3 小时后都被锁定/死亡。

最好是让像 10 个这样的恒定线程始终运行并从主线程请求 URL,还是更好地为每个 url 创建一个线程,然后如果它在一段时间后没有响应,则以某种方式终止它? (如何杀死子线程?)

最佳答案

如果是 HTTP 连接,我真的怀疑你能否缓存它们。因为保持HTTP连接的存活不仅仅需要客户端,还需要服务器端的支持。大多数情况下,服务器会在超时时间(在服务器中配置)后关闭连接。因此,请检查服务器端配置的最大超时时间以及您希望将连接缓存多长时间。

关于java - Java中维护大量连接的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6978835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com