一共3个goroutine 第一个锁定 然后wait睡眠,第二个 第三个怎么任然可以锁定!!互斥锁的规则不是只能一个锁定,解锁后 才能给下一个goroutine 锁定吗?
有疑问加站长微信联系(非本文作者)

一共3个goroutine 第一个锁定 然后wait睡眠,第二个 第三个怎么任然可以锁定!!互斥锁的规则不是只能一个锁定,解锁后 才能给下一个goroutine 锁定吗?
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
Java的这个文档说的比较清楚
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/Condition.html
你把mutex作为cond的内部lock混用了,cond wait的时候已经解锁cond的内部lock了。如果想达到你的效果,你要用一个新的mutex和cond不要混在一起。
感觉对cond的理解有问题。
另外建议用channel更简单。所有与锁和信号量有关的都可以用channel实现。
好的谢谢!