为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我在尝试从从未在 goroutine 中接收数据但在 main func

为什么我在尝试从从未在 goroutine 中接收数据但在 main func

Go
汪汪一只猫 2022-06-21 10:40:19
为什么我会在这里陷入僵局c := make(chan bool)fmt.Println(<-c)fmt.Println("done")而不是在这里c := make(chan bool)go func() {    fmt.Println(<-c)}()fmt.Println("done")我期待在这两种情况下都会出现死锁,因为两者都试图从永远不会接收数据的通道中读取。
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

子 goroutine 被阻塞,但当前 goroutine 可以继续执行。

只有当所有goroutines 同时被阻塞时,你才会遇到死锁。


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号