When invoked with the blocking argument set to False, do not block.
If a call with blocking set to True would block, return False
immediately; otherwise, set the lock to locked and return True.
所以我可以做一些类似的事情(或者更高级的事情:p):
import threading
import time
def my_trylock(lock, timeout):
count = 0
success = False
while count < timeout and not success:
success = lock.acquire(False)
if success:
break
count = count + 1
time.sleep(1) # should be a better way to do this
return success
lock = threading.Lock()
my_trylock(lock, 13)
可以使用
threading
模块的Lock.acquire(False)
获得“try lock”行为(参见Python doc):我想不出一个令人满意的方法来使用
with
。在哎哟,我的错! 我应该先读一下pythonreference for Locks!在
所以我可以做一些类似的事情(或者更高级的事情:p):
相关问题 更多 >
编程相关推荐