gpt4 book ai didi

python - 为什么Python的threading.Condition默认使用RLock?

转载 作者:太空宇宙 更新时间:2023-11-03 17:18:30 25 4
gpt4 key购买 nike

threading.Condition 将锁作为参数,但如果未指定,则默认使用 threading.RLock。当我在一个线程中对条件变量调用acquire,然后将其交给另一个线程来wait时,我发现了这一点。 RLock 会失败,因此解决方案是使用普通锁。默认情况下使用 RLock 的基本原理是什么?

最佳答案

默认情况下使用RLock来阻止您尝试执行的操作。为了保证谓词受到保护,将在同一个线程中获取锁并等待条件。使用RLock 可以保证这一点。

当将 Lock 与条件一起使用时,没有隐式保证谓词受到保护,因为锁定线程可能会并行地对其进行处理。

关于python - 为什么Python的threading.Condition默认使用RLock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33415788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com