【发布时间】:2019-01-18 17:12:35
【问题描述】:
我有一个关于 http 中的 goroutines 的问题。
下面的代码是一个简单的网络服务器。
如果有5个人访问服务器,2个人进入handler1()函数,3个人进入handler2(),golang会创建5个goroutines还是需要保留字go?
例如go http.HandleFunc("/h1", handler1)
package main
import(
"fmt"
"log"
"net/http"
)
func handler1(w http.ResponseWriter, r *http.Request) {
fmt.Println(w, "Hello 01!")
}
func handler2(w http.ResponseWriter, r *http.Request) {
fmt.Println(w, "Hello 02")
}
func main() {
http.HandleFunc("/h1", handler1)
http.HandleFunc("/h2", handler2)
log.Fatal(http.ListenAndServe(":8080", nil))
}
【问题讨论】:
-
net/http在自己的 goroutine 中处理每个传入的请求。