gpt4 book ai didi

java - 多线程和并发上下文中的 HttpClient 行为

转载 作者:行者123 更新时间:2023-12-01 13:19:24 25 4
gpt4 key购买 nike

任何人都可以帮我澄清 HttpClient 在多线程中的行为吗?

当我通过下面的代码创建 HttpClient 对象时,我应该在整个应用程序生命周期中全局保留该对象(HttpClient 文档中建议使用此方法),还是应该我每次想要执行 Http 连接(Get 和 Post)时都创建?

1)
Static HttpClient httpclient = HttpClientBuilder.create().build(); //so we can use this object in everywhere.

2)
HttpClient httpclient = HttpClientBuilder.create().build(); //do this every time when we want to establish http connect.

确保 Http 连接不会互相阻塞并确保它们可以并发运行的最佳方法是什么?

最佳答案

使用 PoolingConnectionManager 并配置每个路由所需的连接数(确保连接数与使用它们的线程数一样多)。然后你可以简单地在任何地方注入(inject)相同的httpclient。我已经这样使用它好几年了。

还考虑在任何地方使用 ResponseHandlers;这极大地简化了资源和连接的释放。

关于java - 多线程和并发上下文中的 HttpClient 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22163325/

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