标签:内存 rgs art nbsp _id 重复 star 值方法 str
threading.local
基本概念:同一进程内的内存栈是全局的。
threading.local本质上是对全局字典对象管理类的一个封装,
内部自动为每个线程维护一个空间(字典),用于当前存取属于自己的值。保证线程之间的数据隔离。
主要的目的是线程之间的数据隔离。
当然,自己写也不是不可以,但开发的一个宗旨是不必重复造轮子。
案例源码:
import time
import threading
local = threading.local()
def func(n):
print(threading.current_thread())
local.val = n
time.sleep(2)
print(n)
for i in range(10):
t = threading.Thread(target=func,args=(i,))
t.start()
实质上local.val = n等效于local._local__impl.dicts[‘thread_id’][‘val’] = n
另外需要注意的是local类重写了取值方法。
标签:内存 rgs art nbsp _id 重复 star 值方法 str
原文地址:https://www.cnblogs.com/wodeboke-y/p/11442859.html