我正在阅读Python Threading Lock API Link here。
我想知道下面的陈述是什么意思。
“当状态被锁定时,acquire()阻塞,直到另一个线程中对release()的调用将其更改为已解锁,然后acquire()调用将其重置为已锁定并返回。”
我已经读了100次这个陈述。仍然无法得到它。
为什么另一个线程要解锁? “那么”之后的陈述是什么意思?
对此有什么好的解释吗?
答案 0 :(得分:2)
总的意思是当从线程获取锁时,调用acquire的其他线程等待直到释放锁并再次锁定它:
当州被锁定时,
线程A获取()锁
获取()块
线程B尝试获取()锁,但它被锁定,因此acquire()阻止当前线程
直到另一个线程中对release()的调用将其更改为已解锁
直到锁被释放到其他地方(即,它等待直到线程A释放()锁定)
然后acquire()调用将其重置为已锁定并返回。
线程B的acquire()再次锁定锁