主题
文章
项目
资源
图书
Go网址导航
下载
官方文档
英文文档
中文文档
标准库中文版
Go指南
注册
登录
首页
主题
Go问与答
下面的代码为什么会死锁?fatal error: all goroutines are asleep - deadlock!
xulc2021
·
· 1259 次点击
![123456.png](https://static.golangjob.cn/230410/c3fc3e351470790dfdeb7f015bf4166c.png)
阅读全文
查看全部 8 个评论
xulc2021
解答:根据 sync/rwmutex.go 中,读写锁的注释可以知道,读写锁当有⼀个协程在等待写锁时,其他协程是不能获得读锁的,⽽在 A 和 C 中同⼀个调⽤链中间需要让出读锁,让写锁优先获取,⽽ A 的读锁⼜要求 C 调⽤完成,因此死锁。
评论于 2023-04-10 15:25:14
#5
更多评论
xulc2021
有没有 老gopher来帮我解答一下~
评论于 2023-04-10 12:48:53
#1
jan-bar
想要拥有,必定付出。
go的锁是不可重入锁。。感觉是你A里面lock后再到C里面lock。。
评论于 2023-04-10 13:37:27
#2
我要评论
用户登录
记住登录状态
没有账号?
注册
忘记密码?
或
GitHub 登录
Gitea 登录
Go今日面试题
今日阅读排行
一周阅读排行
X
登录和大家一起探讨吧
用户名
密码
记住登录状态
登录
GitHub 登录
忘记密码?
还不是会员
现在注册