Mutex锁与线程锁。何者更适用?

8

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

1个回答

13

如果锁不是原子操作,那么任何类型的锁都将是无用的- 锁的整个意义在于允许更高级别的原子操作。

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

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


谢谢,我只是想再确认一下。 - Richard
2
另一个不使用mutex模块的更大原因是:它的锁是线程无关的。它们用于使用sched模块的单线程程序。本质上,它们是无用的。 - Thomas Wouters
@Thomas Wouters,我想这就是为什么他们不再在Python 3中保留mutex模块的原因。 - Richard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接