Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用多个HttpURLConnection并行发送时出现的问题?_Java_Sockets_Timeout_Httpurlconnection - Fatal编程技术网

Java 使用多个HttpURLConnection并行发送时出现的问题?

Java 使用多个HttpURLConnection并行发送时出现的问题?,java,sockets,timeout,httpurlconnection,Java,Sockets,Timeout,Httpurlconnection,目前,我正在用Java设计一个模块,用于收集数据,并在同一目标地址上的不同API端点上并行发送数据。它们是使用线程并行发送的 因为它们被发送到相同的目标IP地址,所以使用HttpURLConnection发送信息时是否会出现问题?我认为它们可能使用相同的基本端口/套接字,即使每个传输都使用一个新的HttpURLConnection对象 它们最终会被一个接一个地发送吗?如果连接出现问题(例如超时),如果一个接一个地发送超时,每个连接的超时是否会累加?如中所述: 这意味着它可能取决于您正在使用的JV

目前,我正在用Java设计一个模块,用于收集数据,并在同一目标地址上的不同API端点上并行发送数据。它们是使用线程并行发送的

因为它们被发送到相同的目标IP地址,所以使用
HttpURLConnection
发送信息时是否会出现问题?我认为它们可能使用相同的基本端口/套接字,即使每个传输都使用一个新的
HttpURLConnection
对象

它们最终会被一个接一个地发送吗?如果连接出现问题(例如超时),如果一个接一个地发送超时,每个连接的超时是否会累加?

如中所述:


这意味着它可能取决于您正在使用的JVM。看起来它们可能会一个接一个地被发送。

连接是否应该被重用的问题是连接池和HttpURLConnection类本身的实现问题。它与JVM无关

如果我们保持HttpURLConnection中的内容不可知,那么在一天结束时,所有内容都转换为套接字(端点)和以套接字为目标的连接。每个端点可以有多个连接。您的问题的答案是,只要连接未合并,就不会逐个发送它们

本主题详细解释套接字和连接的概念。我建议你读一读


不过,关于HttpURLConnection的连接池是可能的,并在此处进行了详细说明:

您能看看上面的
bezet
的答案吗?这就是我所指的,我很谨慎,他们都使用相同的底层连接。@stoneman_41我不认为连接的重用与JVM有任何关系。如果重新使用连接,则是HttpURLConnection本身的实现问题,而不是底层JVM的实现问题。如果使用连接池,则可能发生连接共享。同样,与JVM无关。我仍然支持我的回答。
Each HttpURLConnection instance is used to make a single request but the
underlying network connection to the HTTP server may be transparently
shared by other instances.