gpt4 book ai didi

python - RLock 是 Lock 的明智默认设置吗?

转载 作者:太空狗 更新时间:2023-10-29 17:47:01 24 4
gpt4 key购买 nike

Python中的threading模块提供了两种锁:普通锁和可重入锁。在我看来,如果我需要一把锁,我应该总是更喜欢 RLock 而不是 Lock;主要是为了防止出现死锁情况。

除此之外,我看到两点,何时更喜欢 Lock 而不是 RLock:

  • RLock 的内部结构更复杂,因此性能可能更差。
  • 由于某种原因,我想阻止线程通过锁递归。

我的推理正确吗?您能指出其他方面吗?

最佳答案

两点:

  • 在正式发布的 Python 版本(2.4、2.5... 到 3.1)中,RLock 比 Lock 慢得多,因为 Locks 是在 C 中实现的,而 RLocks 在 Python 中实现的(这将在 3.2 中改变)
  • Lock 可以从任何线程释放(不一定是获取它的线程),而 RLock 必须由获取它的同一个线程释放

最重要的是,我建议仅在 RLock 与您正在寻找的语义匹配时才使用它,否则默认情况下坚持使用 Locks。

关于python - RLock 是 Lock 的明智默认设置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1822541/

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