python - threading.local()的使用
使用
import threading
ctx = threading.local()
将这个类实例化得到一个全局对象,但是不同的线程使用这个对象存储的数据其它线程不可见(本质上就是不同的线程使用这个对象时为其创建一个独立的字典)。
下面 是_collection中的一段源码
实例化ThreadLocalRegistry 后self.registry 被赋值 threading.local()
在__call__中会self.regitry被赋予属性value,这样在使用多线程是就能在全局变量中开辟一块,线程的独立空间,为我们对不同的线程做相应的处理。