package main
import ( "fmt" "net" )
var temp net.IP
func main() { fmt.Println("start......") ch := make(chan int) <-ch fmt.Println("hello world") }
/* start......
*/
package main
import ( "fmt" )
func main() { fmt.Println("start......") ch := make(chan int) <-ch fmt.Println("hello world") }
/* start...... fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan receive]: main.main() */
|  |      1koujianshusheng OP 一个堵塞一个死锁,就因为 net 包? | 
|  |      2youngzy      2022-05-27 18:10:51 +08:00 第一个应该也是死锁,没有创建新的协程,主协程阻塞。      去 play ground 试试? | 
|  |      3koujianshusheng OP @youngzy 我是在本地环境运行的,play ground 会死锁,但是本地没有 | 
|  |      4codehz      2022-05-27 18:43:39 +08:00 via Android 引用 cgo 的包(包括 net )就会关闭死锁检测器 | 
|  |      5koujianshusheng OP @codehz 这个说法有参考资料吗,亲 | 
|  |      6iBugOne      2022-05-27 18:54:21 +08:00 via Android | 
|  |      7koujianshusheng OP @iBugOne 感谢 | 
|  |      8lysS      2022-05-27 19:00:54 +08:00 无论是否 import net ,我这里都是 17 没有报错,18 报错 | 
|  |      9lysS      2022-05-27 19:03:01 +08:00 知道了,net 没有 cgo ,可以 import "C"来检测 | 
|  |      10zuokanyunqishi      2022-05-27 19:11:08 +08:00 go1.18.1 复现。。 |