package main
import (
"fmt"
"net/http"
)
func Extract(url string) ([]string, error) {
http.Get(url)
var links []string
return links, nil
}
func crawl(url string) []string {
list, _ := Extract(url)
return list
}
func main() {
var ch = make(chan int)
ch <- 1
}
如果删除net / http导入,则将按预期返回“死锁”错误。但是,如果导入此程序包,尽管我没有调用Extract函数,但不会出现“死锁”。
答案 0 :(得分:9)
导入net程序包将启动后台轮询Goroutine,这些Goroutine有效地禁用了死锁检测器。
您可以在此处查看有关类似问题的讨论:https://github.com/golang/go/issues/12734