Java HttpClient 同步与异步请求

问题描述 投票:0回答:1

Java

HttpClient
可以发送同步或异步请求。同步方法会阻塞,直到收到响应为止,而异步方法则不会。但这对开发人员意味着什么?一般来说,我认为异步应该更高效。然而,同步请求存在的事实意味着它们也有用途。所以问题是: 什么时候应该发送同步请求,什么时候应该发送异步请求? 我的假设是,对此没有具体的规则,但应该有一些众所周知的情况,其中一个是比另一个更好的选择。
在我当前的案例中,我正在尝试编写一个应用程序,用于从具有分页功能的 Web API 中搜索文章。然而,我的问题不仅仅是关于这个特殊案例。我也希望收到一些有关如何选择这两种方法之一的一般提示。

java rest httprequest java-http-client
1个回答
0
投票
  1. 如果您需要并行发出许多请求,异步 HTTP 请求非常有用,因为您可以节省本机线程开销。如果需要很长时间才能收到服务器的响应,则尤其如此。 (但是,如果您使用 Java 21 中发布的虚拟线程,这将变得不太相关)。
  2. 如果您需要并行发出多个 HTTP 请求,并返回收到的任何第一个响应,同时取消其他请求,那么异步请求可能会很好。
  3. 如果您已经在异步上下文中编写代码,例如异步 Spring 控制器方法,则必须发出异步请求。
© www.soinside.com 2019 - 2024. All rights reserved.