代码缓存击穿保护器singleflight
Posted azach64
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码缓存击穿保护器singleflight相关的知识,希望对你有一定的参考价值。
fs = dict()
lock = Lock()
def singleflight(key, func):
with lock:
if key in fs:
wait = True
f = fs[key]
else:
wait = False
f = [None, Event()]
fs[key] = f
if wait:
f[1].wait()
r = f[0]
else:
r = func()
f[0] = r
f[1].set()
with lock:
fs.pop(key, None)
return r
以上是关于代码缓存击穿保护器singleflight的主要内容,如果未能解决你的问题,请参考以下文章
groupcache源码分析(singleflight防缓存击穿)
groupcache源码分析(singleflight防缓存击穿)