我有一些服务器正在处理GET请求。需要为此服务器创建高负载
简单的测试客户端:
func main(){
http.Get("http://localhost:8080/8")
}
工作正常,服务器显示他已收到请求
另一个测试:
func main(){
for i:=0; i<5; i++{
go func() {
http.Get("http://localhost:8080/8")
}()
}
}
甚至
func main(){
for i:=0; i<5; i++{
go http.Get("http://localhost:8080/8")
}
}
它不起作用,服务器未收到任何请求
那么,有什么问题呢?
最佳答案
我认为这是因为您的应用程序在循环结束后立即终止。
要解决这个问题,您可以使用WaitGroup。并更改您的代码,如下所示:
func main(){
wg := sync.Waitgroup{}
for i:=0; i<5; i++{
wg.Add(1)
go func() {
defer wg.Done()
http.Get("http://localhost:8080/8")
}()
}
wg.Wait()
}
关于go - golang http.Get请求按常规方式工作,但在go例程内部不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60464077/