另一个Python线程如何等待锁被释放?
有了这些代码,我如何确保总是可以在不等待的情况下调用另一个Python线程如何等待锁被释放?,python,locking,python-multithreading,Python,Locking,Python Multithreading,有了这些代码,我如何确保总是可以在不等待的情况下调用get\u model(),除非reload\u lock处于活动状态 最好,我不希望get_model()获得reload_lock本身,因为所有线程都可以自由调用此方法,除非应用程序正在重新加载其模型 导入线程 reload_lock=threading.lock() def get_型号(名称): #通常可以调用此函数,除非reload_models()处于活动状态 #例如,“如果重新加载锁定()->等待锁定释放。 ... def rel
get\u model()
,除非reload\u lock
处于活动状态
最好,我不希望get_model()
获得reload_lock
本身,因为所有线程都可以自由调用此方法,除非应用程序正在重新加载其模型
导入线程
reload_lock=threading.lock()
def get_型号(名称):
#通常可以调用此函数,除非reload_models()处于活动状态
#例如,“如果重新加载锁定()->等待锁定释放。
...
def reload_模型():
尝试:
重新加载_lock.acquire()
…#重新加载模型
最后:
重新加载锁。释放()
也许您应该这样尝试,在get\u model()
中:
我知道这是一个获取
,但如果您立即释放它,它可能是一个解决方案。并且重新加载锁。锁定()对您不起作用?这就是您检查锁是否锁定的方式。如果获得锁,它将返回True。否则返回False。
if reload_lock.locked():
reload_lock.acquire()
reload_lock.release()