我正在阅读 The Go Programming Language 一书,书中有一个例子说明了 goroutine 泄漏
func mirroredQuery() string {
responses := make(chan string, 3)
go func() { responses <- request("asia.gopl.io") }()
go func() { responses <- request("europe.gopl.io") }()
go func() { responses <- request("americas.gopl.io") }()
return <-responses // return the quickest response
}
func request(hostname string) (response string) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
我试图解决泄漏,并得到以下代码
func request(url string) string {
res, err := http.Get(url)
if err == nil {
body, err := io.ReadAll(res.Body)
if err == nil { …Run Code Online (Sandbox Code Playgroud)