在阅读了Java HttpURLConnection上的所有文档之后,我仍然很困惑,因为它执行哪种池化以及如何处理连接。
例如下面的代码
URL url = new URL(someUrl);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
OutputStream os = connection.getOutputStream();
InputStream is = connection.getInputStream();
/** Write something to os and flush */
/** Read from is */
os.close();
is.close();
connection.disconnect();
是否都需要冲洗并关闭两者os
,is
以使基础套接字可重复使用?
是否会connection.disconnect()
关闭底层套接字(从而使其无法重用)?是否keep-alive
会影响这种行为?
如果我使用不同的URL对象,但具有相同的URL,connection
则从它们创建的s是否共享底层套接字?URL的主机部分相同但路径不同时如何?
何时会破坏池中的连接?
控制池大小的系统属性是什么?
此外,如果您还可以将Android版本与Java进行比较,那就太好了。
谢谢
- 是否都需要冲洗并关闭两者
os
,is
以使基础套接字可重复使用?
关闭输入流就足够了。您不能刷新输入流,而在关闭之前刷新输出流是多余的。
- 是否会
connection.disconnect()
关闭底层套接字(从而使其无法重用)?
它“提示”关闭基础连接。
是否
keep-alive
会影响这种行为?
是。如果不存在,则必须关闭连接。
- 如果我使用不同的URL对象,但具有相同的URL,
connection
则从它们创建的s是否共享底层套接字?
是。
URL的主机部分相同但路径不同时如何?
是。
- 何时会破坏池中的连接?
空闲超时后。
- 控制池大小的系统属性是什么?
我不知道有哪一种,但是如果有,它将在“网络属性”页面中定义,您可以通过Javadoc找到该页面。
此外,如果您还可以将Android版本与Java进行比较,那就太好了。
我相信Android根本不做池化,但是当他们切换到OpenJDK源代码时,这应该会改变。
请原谅,这很可能是一个愚蠢的新手问题。 我们使用Hystrix作为两个服务之间的断路器。为了提高性能,我们使用了连接池。我们正在使用Apache HttpClient的PoolingHttpClientConnectionManager来处理连接池。 我们还使用Hystrix的“TimeoutInMissels”属性来捕获问题。 我们遇到的“问题”是,在正常操作中,创建一个新的HTTPS连接需要c
我一直在到处寻找,收集零碎的东西,如果这已经在其他地方得到了回答,但我找不到,我很抱歉。 我正在用Java编写一个web应用程序,在后端使用Tomcat和SQLAzure。 有多个servlet访问SQLAzure DB。我想使用由Tomcat 8.5管理的连接池 我的应用程序上下文。META-INF中的xml如下所示: 在Java代码中,我以典型的方式访问: ds.get连接。 一切似乎都正常,
问题内容: 关于它们有很多传说。我想知道真相。以下两个示例之间有什么区别? 问题答案: 不确定从何处获得传说,但: 提交按钮 与: IE6将在标记之间提交此按钮的所有文本,其他浏览器将仅提交值。使用可使您在按钮的设计上享有更大的布局自由度。从各种意图和目的看,它乍一看似乎很棒,但是各种浏览器怪癖使它有时很难使用。 在您的示例中,IE6将发送到服务器,而其他大多数浏览器将不发送任何内容。要使其跨浏览
什么区别以及如何正确重写代码?
主要内容:一、MySql中的线程,二、主要方式,三、源码流程,四、总结一、MySql中的线程 在mysql中,每一个连接上来,就会分配给一个相关的THD数据类。在前面的分析中可以看到,连接器(Connectors)连接到的直接就是连接池,在连接池的线程处理中分为三部分,即一对一(一个连接对应一个线程),多对一(多个连接对应一个线程)和线程池(多对多)。 线程池和线程可以针对不同的具体场景来处理具体的事务,这样既兼顾了效率又提高了适应性,对于新手来说,这就是设计的一个
我试图理解为什么下面两个代码块会产生不同的结果。 代码块1按预期工作,并返回从数据库中查找的提供程序的数组。另一方面,代码块2返回函数数组。在理解promissione.all()和async/await时,我觉得缺少了一些简单的东西。 代码块的差异如下: > 块1:创建许诺函数数组,然后使用map运算符将其包装在异步函数中。 块2:许诺函数的数组被创建为异步函数。因此,不调用map运算符。 如果