在线文档教程

mutex

mutex — Mutual exclusion support

自2.6版以来已弃用:该mutex模块已在Python 3中删除。

mutex模块定义了一个类,允许通过获取和释放锁来相互排斥。它不需要(或暗示)threading或多任务处理,尽管它可以用于这些目的。

mutex模块定义了以下类:

class mutex.mutex

创建一个新的(未锁定)互斥锁。

一个互斥体有两个状态 - 一个“锁定”位和一个队列。当互斥锁未锁定时,队列为空。否则,队列包含零个或多个(function, argument)表示等待获取锁的函数(或方法)的对。当队列不为空时解锁互斥锁时,将删除第一个队列条目并function(argument)调用它的对,意味着它现在具有锁定。

当然,没有多线程是隐含的 - 因此,有趣的界面lock(),一旦获得锁,就调用函数。

1.互斥对象

mutex 对象有以下方法:

mutex.test()

检查互斥锁是否被锁定。

mutex.testandset()

“原子”测试和设置,如果没有设置锁定,则返回True,否则返回False

mutex.lock(function, argument)

执行function(argument),除非互斥锁被锁定。在被锁定的情况下,将函数和参数放在队列中。请参阅该情况下unlock()何时function(argument)执行的说明。

mutex.unlock()

如果队列为空,则解锁互斥锁,否则执行队列中的第一个元素。