信道定义了写入,没有定义读取,为什么没有死锁

jiangyd · · 903 次点击
3楼 <a href="/user/jiangyd" title="@jiangyd">@jiangyd</a> https://github.com/golang/go/issues/33004?fbclid=IwAR0LLl3BG1RNfJY4EmPYDMk-j2_rVQyXY5lgiKgFayYjUDHXu_jT943DtWQ 這裡有解答,簡而言之就是不能完全依靠deadlock檢測器
#4
更多评论
为什么会报错? 死锁又不会报错…… 你要看你的9001是否能访问,才知道是否死锁了啊 不对,你都直接return了,无论如何都不能访问…… 你第一行的打印不是应该在return之前么 你这代码,如果运行好没有自己退出,就是死锁了。
#1
``` package main import &#34;fmt&#34; func main() { fmt.Println(&#34;running, not deadlock&#34;) waitQueue := make(chan int) waitQueue &lt;- 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