我有一些服务器在处理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")
}
}
它没有工作,服务器没有收到任何请求
那么,什么是问题?
发布于 2020-02-29 11:07:06
我想是因为你的应用程序在循环结束后就终止了。
要处理这个问题,您可以使用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()
}
https://stackoverflow.com/questions/60464077
复制相似问题