package mainimport ( "log" "net/http")func useless_func(address string) []byte { http.Get("https://www.google.com") return nil}func test_a(test_channel chan int) { test_channel <- 1 return}func test() { test_channel := make(chan int) for i := 0; i < 10; i++ { go test_a(test_channel) } for { log.Println(<-test_channel) }}func main() { test()}此代碼不會因死鎖而中斷,我在 Linux 4.1.6-1 和 3.16.0-4 下使用 go 1.5.1 amd64 嘗試此代碼并得到相同的結果。但是如果我刪除 useless_func 或使用 go 1.4.3 或在 windows 下運行它,它會表現良好。這真的很奇怪,如果有人能解釋一下嗎?
golang 在死鎖檢測中有奇怪的行為
慕的地6264312
2021-11-08 18:22:01
