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函数,“死锁”不会出现。
2条答案
按热度按时间wz3gfoph1#
导入net包会启动后台轮询Goroutine,从而有效地禁用死锁检测器。
您可以在此处查看对类似问题的讨论:https://github.com/golang/go/issues/12734
dojqjjoe2#
我只能在版本〈= 1.19上重现这个例子。所以你有版本〉= 1.20死锁检测器将工作得很好。看起来这个例子被改变了。