【问题标题】:Mutex locks vs Threading locks. Which to use?互斥锁与线程锁。使用哪个?
【发布时间】:2010-07-23 16:58:16
【问题描述】:

我的主要问题是线程锁对象是否创建原子锁?在模块文档中并没有说锁是原子的。在 python 的互斥锁文档中,它确实说互斥锁是原子的,但似乎我在某处读到实际上不是。我想知道是否有人可以给我一些关于这个问题的见解。我应该使用哪个锁。我目前正在使用 python 2.4 运行我的脚本

【问题讨论】:

    标签: python multithreading locking mutex


    【解决方案1】:

    如果不是原子的,任何性质的锁都将毫无用处 - 锁的全部意义在于允许更高级别的原子操作。

    所有线程的同步对象(锁、rlock、信号量、有界信号量)都使用原子指令,互斥体也是如此。

    应该使用threading,因为mutex 实际上在未来已被弃用(并在 Python 3 中被删除)。

    【讨论】:

    • 谢谢,我只是想仔细检查一下。
    • 还有一个不使用mutex 模块的更大理由:它的锁是线程无知的。它们用于使用sched 模块的单线程程序。从本质上讲,它们毫无用处。
    • @Thomas Wouters,我认为这就是为什么他们不再在 python 3 中保留 mutex 模块
    猜你喜欢
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2010-09-16
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    相关资源
    最近更新 更多