有一个sync互斥锁的问题!为什么第一个1锁定后第2个goroutine 也可以锁定

aiaa5505 · · 910 次点击
更多评论
Java的这个文档说的比较清楚 https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/Condition.html
#1
你把mutex作为cond的内部lock混用了,cond wait的时候已经解锁cond的内部lock了。如果想达到你的效果,你要用一个新的mutex和cond不要混在一起。 感觉对cond的理解有问题。 另外建议用channel更简单。所有与锁和信号量有关的都可以用channel实现。
#2