大神解释下:不是说锁不可重入么

wujiangwei · · 1435 次点击
多线程锁机制没搞清楚? 虽然我现在也不清楚协程是怎么实现的,和线程有什么区别,但是也知道: 不同线程要争抢同一资源的时候,需要对资源加锁。 线程1锁住后,线程2会在lock处会阻塞,直到线程1释放锁之后才被唤醒继续执行。 go是开启一个新的协程去执行后面的函数代码,协程1里是锁住了,但是并不会影响协程2里的lock,只是协程2会在lock处阻塞等待。
#6
更多评论
因为3-7处并没有执行6…… 你可以理解为6是告诉系统将要执行removeFromQueue
#1
我们抛开 6 的时间延迟,程序仍然能正常执行,正如你所说的`将要执行` , 那我们起了10个goroutine 会不会有某一个 goroutine与 maingoroutine 同时执行,如果有,那么这个问题可能依然存在,或者说我理解的方向有误,那么正确的理解应该是什么呢
#2