1. threading.local a. threading.local 作用:为每个线程开辟一块空间进行数据存储。 问题:自己通过字典创建一个类似于threading.local的东西。 storage={ 4740:{val:0}, 4732:{val:1}, 4731:{val:3}, 4712:{}, 4732:{}, 5000:{val:} } b. 自定义Local对象 作用:为每个线程(协程)开辟一块空间进行数据存储。 try: from greenlet import getcurrent as get_ident except Exception as e: from threading import get_ident from threading import Thread import time class Local(object): def __init__(self): object.__setattr__(self,'storage',{}) def __setattr__(self, k, v): ident = get_ident() if ident in self.storage: self.storage[ident][k] = v else: self.storage[ident] = {k: v} def __getattr__(self, k): ident = get_ident() return self.storage[ident][k] obj = Local() def task(arg): obj.val = arg obj.xxx = arg print(obj.val) for i in range(10): t = Thread(target=task,args=(i,)) t.start()
threading.local
猜你喜欢
转载自www.cnblogs.com/jassin-du/p/8978079.html
今日推荐
周排行