互斥锁和线程锁,应该用哪个?

8 投票
1 回答
8876 浏览
提问于 2025-04-16 01:44

我主要想问的是,线程锁对象是否会创建原子锁?在模块的文档中并没有说明这个锁是原子的。在Python的互斥锁文档中确实提到互斥锁是原子的,但我似乎在某个地方看到过其实并不是。我想知道有没有人能给我一些关于这个问题的见解。我应该使用哪种锁?我现在使用的是Python 2.4来运行我的脚本。

1 个回答

13

如果锁不是原子的,那它们就没什么用处了——锁的主要作用就是让我们可以进行更高级别的原子操作。

所有与线程相关的同步对象(比如锁、可重入锁、信号量和有界信号量)都使用了原子指令,互斥锁也是如此。

应该使用threading,因为mutex实际上已经不再推荐使用了(在Python 3中已经被移除了)。

撰写回答