如果我在http處理程序中啓動goroutine,即使在返回響應後它是否會完成?下面是一個例子代碼:Goroutine在http處理程序中執行
package main
import (
"fmt"
"net/http"
"time"
)
func worker() {
fmt.Println("worker started")
time.Sleep(time.Second * 10)
fmt.Println("worker completed")
}
func HomeHandler(w http.ResponseWriter, r *http.Request) {
go worker()
w.Write([]byte("Hello, World!"))
}
func main() {
http.HandleFunc("/home", HomeHandler)
http.ListenAndServe(":8081", nil)
}
在上面的例子中,是worker
夠程將完成在所有情況下?或者當它沒有完成時有沒有特殊情況?
爲什麼downvote? – inf