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函数,但“死锁”就不会出现。
最佳答案
导入 net 包会启动后台轮询 Goroutine,从而有效禁用死锁检测器。
您可以在此处查看类似问题的讨论:https://github.com/golang/go/issues/12734
关于go - 为什么此代码不返回 "deadlock"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58619289/