关于Python线程锁定对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Python线程锁定对象相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

对此有什么好的解释吗?

答案

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

当州被锁定时,

线程A获取()锁定

acquire()块

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

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

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

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

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

以上是关于关于Python线程锁定对象的主要内容,如果未能解决你的问题,请参考以下文章

Python 线程互斥锁 Lock

python笔记10-多线程之线程同步(锁lock)

关于排查python内存泄露的简单总结

Python关于Python多线程的一篇文章转载

python哪些容器线程安全

python之路--关于线程的一些方法