我的主要问题是Threading锁对象是否创建原子锁?模块文档中没有说明锁是原子的。在Python互斥锁文档中,确实说互斥锁是原子的,但似乎我曾经读到它实际上并不是。我想知道有人能否给我一些关于这个问题的见解。我应该使用哪个锁。我目前正在使用Python 2.4运行我的脚本。
我的主要问题是Threading锁对象是否创建原子锁?模块文档中没有说明锁是原子的。在Python互斥锁文档中,确实说互斥锁是原子的,但似乎我曾经读到它实际上并不是。我想知道有人能否给我一些关于这个问题的见解。我应该使用哪个锁。我目前正在使用Python 2.4运行我的脚本。
如果锁不是原子操作,那么任何类型的锁都将是无用的- 锁的整个意义在于允许更高级别的原子操作。
所有线程同步对象(锁、重入锁、信号量、有界信号量)都利用原子指令,互斥锁也是如此。
你应该使用threading
,因为mutex
实际上已被弃用(并在Python 3中删除)。
mutex
模块的更大原因是:它的锁是线程无关的。它们用于使用sched
模块的单线程程序。本质上,它们是无用的。 - Thomas Wouters