package main
import (
"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 下运行它,它会表现良好。这真的很奇怪,如果有人能解释一下吗?
慕后森
相关分类