给定这段代码,我如何确保总是可以在不等待的情况下调用get_model()
,除非reload_lock
处于活动状态
最好,我不希望get_model()
获得reload_lock
本身,因为所有线程都可以自由调用此方法,除非应用程序正在重新加载其模型
import threading
reload_lock = threading.Lock()
def get_model(name):
# Normally this can be called, unless reload_models() is active
# e.g. "if reload_lock.locked() -> wait until lock is released.
...
def reload_models():
try:
reload_lock.acquire()
... # reload models
finally:
reload_lock.release()
也许你应该这样做,在
get_model()
中:我知道这是一个
acquire
,但是如果你立即release
它就可以成为一个解决方案相关问题 更多 >
编程相关推荐