```
package main
import "net"
import "fmt"
func main() {
fmt.Println("running, not deadlock")
waitQueue := make(chan int)
waitQueue <- 1
return
server, err := net.Listen("tcp", "127.0.0.1:9001")
if err != nil {
fmt.Println(err)
}
for {
connection, err := server.Accept()
if err != nil {
panic("server")
}
fmt.Printf("Received connection from %s.\n", connection.RemoteAddr())
}
}
```
代码能执行成功,不会报错
```
package main
import "fmt"
func main() {
fmt.Println("running, not deadlock")
waitQueue := make(chan int)
waitQueue <- 1
}
```
执行结果
```
running, not deadlock
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan send]:
main.main()
/Users/jiangyd/mygo/src/ea.go:8 +0xad
```
#2
更多评论
为什么会报错?
死锁又不会报错……
你要看你的9001是否能访问,才知道是否死锁了啊
不对,你都直接return了,无论如何都不能访问……
你第一行的打印不是应该在return之前么
你这代码,如果运行好没有自己退出,就是死锁了。
#1