我有 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'
最佳答案
没有 locked
方法 - 有充分的理由。
if lock.locked():
lock.acquire()
lock.release()
如果您编写这样的代码,锁的状态会在 if 条件测试和获取之间发生变化。
acquire
allows non-blocking operation :
if lock.acquire(False):
#...
lock.release()
这只会在没有其他东西持有锁的情况下执行 if
中的代码 - 否则,它将完全跳过执行。
关于python - 在python中测试是否已经获取了锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24553309/