在 Django 中更新全局字典数据结构时,我想通过不同的请求锁定对它的访问。我计划有一个包装函数来更新、访问和同步它。来自Java背景!任何指针?
请您参考如下方法:
稍微扩展 LockableDict 示例,使其更加健壮,您可以使用真正的 Lock:
class LockableDict(dict):
def __init__(self, *args, **kwargs):
from threading import Lock
self.lock = Lock()
dict.__init__(self, *args, **kwargs)
@property
def locked(self):
return self.lock.locked()
def lock(self):
self.lock.acquire()
def unlock(self):
self.lock.release()
# and then
my_dict = LockableDict({1:2, 3:4})
my_dict.lock()
# do modifications
my_dict.unlock()
