这个简单的 HTTP 服务器包含对 time.Sleep() 的调用,它使每个请求需要五秒钟。当我尝试在浏览器中快速加载多个选项卡时,很明显每个请求都按顺序排队和处理。我怎样才能让它处理并发请求?
package main
import (
"fmt"
"net/http"
"time"
)
func serve(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, world.")
time.Sleep(5 * time.Second)
}
func main() {
http.HandleFunc("/", serve)
http.ListenAndServe(":1234", nil)
}
其实我是在写完这个问题后才找到答案的,而且很微妙。无论如何我都会发布它,因为我在谷歌上找不到答案。你能看到我做错了什么吗?