func xHandle(w http.ResponseWriter, r *http.Request) {
fmt.Printf("new request: %p\n", r)
w.Write([]byte("Hello\n"))
for {}
}
func main() {
http.HandleFunc("/", xHandle)
http.ListenAndServe(":8080", nil)
}
对于每一个http请求,http服务都会启动一个go routine 来调用xHandle函数。目前搜到的资料都是在xHandle内部做并发数控制,就是说等http服务启go routine后,发现超限了再直接退出。
我想问的是如何从源头上控制http服务的go routine数量,也是当go routine到达上限后,都不用启动go routine回调xHandle,直接在底层响应500给客户端?
有疑问加站长微信联系(非本文作者)