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()
如果队列为空,则解锁互斥锁,否则执行队列中的第一个元素。