我有Python 2.7.3。我试图使用Lock对象只允许我的脚本的一个实例一次运行。 我正在使用:
from mutiprocessing import Lock
lock = Lock()
if lock.locked() == False:
lock.acquire()
lock.release()
正如我所见here 但是我收到了这个错误:
if lock.locked():
AttributeError: 'Lock' object has no attribute 'locked'
答案 0 :(得分:5)
没有locked
方法 - 有充分的理由。
if lock.locked():
lock.acquire()
lock.release()
如果您执行此类代码,则锁定状态可以在if条件和获取的测试之间发生变化。
acquire
allows non-blocking operation:
if lock.acquire(False):
#...
lock.release()
这只会执行if
内的代码,如果没有别的东西拿着锁 - 否则,它会完全跳过执行。