关于Python线程锁定对象

问题描述 投票:0回答:1

我正在阅读Python Threading Lock API。 Link here

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

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

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

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

对此有什么好的解释吗?

python multithreading locking
1个回答
1
投票

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

当州被锁定时,

线程A获取()锁定

acquire()块

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.