为了账号安全,请及时绑定邮箱和手机立即绑定

在并发应用程序中使用 HTTP 客户端的最佳方式

在并发应用程序中使用 HTTP 客户端的最佳方式

Go
偶然的你 2022-01-04 21:20:53
首先,我将描述我的情况。我必须从我的应用程序向多个 API 发出 HTTPS 请求,并且它们应该同时运行。我想知道我是否应该为每个 goroutine 使用一个单独的 HTTP 客户端,或者我可以在所有 goroutine 之间共享一个客户端。当然,我想享受 HTTP 客户端提供的连接重用/池化,但我担心它是线程(又名 goroutine)安全的,并且客户端是否会并发运行请求,或者它们实际上会被排序?
查看完整描述

2 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

根据文档(https://golang.org/src/net/http/client.go),Http 客户端是线程安全的:

客户端对于多个 goroutine 并发使用是安全的。


查看完整回答
反对 回复 2022-01-04
?
撒科打诨

TA贡献1934条经验 获得超2个赞

另一个问题是您应该使用一个客户端还是每个请求一个客户端。您应该按照https://pkg.go.dev/net/http#pkg-overview使用一个客户端

“客户端和传输对于多个 goroutine 并发使用是安全的,并且为了提高效率应该只创建一次并重复使用”


查看完整回答
反对 回复 2022-01-04
  • 2 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信