关于Python线程锁定对象

时间:2017-12-18 11:46:18

标签: python multithreading locking

我正在阅读Python Threading Lock API Link here

我想知道下面的陈述是什么意思。

“当状态被锁定时,acquire()阻塞,直到另一个线程中对release()的调用将其更改为已解锁,然后acquire()调用将其重置为已锁定并返回。”

我已经读了100次这个陈述。仍然无法得到它。

为什么另一个线程要解锁? “那么”之后的陈述是什么意思?

对此有什么好的解释吗?

1 个答案:

答案 0 :(得分:2)

总的意思是当从线程获取锁时,调用acquire的其他线程等待直到释放锁并再次锁定它:

  

当州被锁定时,

线程A获取()锁

  

获取()块

线程B尝试获取()锁,但它被锁定,因此acquire()阻止当前线程

  

直到另一个线程中对release()的调用将其更改为已解锁

直到锁被释放到其他地方(即,它等待直到线程A释放()锁定)

  

然后acquire()调用将其重置为已锁定并返回。

线程B的acquire()再次锁定锁