Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 互斥锁与线程锁。用哪一个?_Python_Multithreading_Locking_Mutex - Fatal编程技术网

Python 互斥锁与线程锁。用哪一个?

Python 互斥锁与线程锁。用哪一个?,python,multithreading,locking,mutex,Python,Multithreading,Locking,Mutex,我的主要问题是线程锁对象是否创建原子锁?在模块文档中并没有说锁是原子的。在pythons互斥锁文档中,它确实说互斥锁是原子锁,但我似乎在某个地方读到,实际上它不是原子锁。我想知道是否有人能给我一些关于这件事的见解。我应该用哪把锁。我目前正在使用python 2.4运行我的脚本。如果不是原子锁,那么任何性质的锁都是无用的——锁的全部目的是允许更高级别的原子操作 线程的所有同步对象(锁、rlock、信号量、绑定信号量)都使用原子指令,互斥体也是如此 您应该使用threading,因为mutex实际上

我的主要问题是线程锁对象是否创建原子锁?在模块文档中并没有说锁是原子的。在pythons互斥锁文档中,它确实说互斥锁是原子锁,但我似乎在某个地方读到,实际上它不是原子锁。我想知道是否有人能给我一些关于这件事的见解。我应该用哪把锁。我目前正在使用python 2.4运行我的脚本。如果不是原子锁,那么任何性质的锁都是无用的——锁的全部目的是允许更高级别的原子操作

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


您应该使用
threading
,因为
mutex
实际上是不推荐的(在Python 3中被删除了)。

谢谢,我只是想再次检查一下。不使用
mutex
模块的一个更大的原因是:它的锁是线程无关的。它们用于使用
sched
模块的单线程程序。本质上,它们是无用的。@Thomas Wouters,我认为这就是为什么他们不再在Python3中保留互斥模块的原因