下面的代码为什么会死锁?fatal error: all goroutines are asleep - deadlock!

xulc2021 · · 1259 次点击
A和C可以同时加读锁,如果把B中的sleep 5 去掉,因为main中sleep 2,所以在sleep 2结束前,go A已经执行完了,m.Lock和ABC中的锁不会有冲突,不知道我理解的对不对?
#7
更多评论
有没有 老gopher来帮我解答一下~
#1
jan-bar
想要拥有,必定付出。
go的锁是不可重入锁。。感觉是你A里面lock后再到C里面lock。。
#2