mydata = threading.local()
mydata.x = 1线程-本地数据是值特定于线程的数据。
例如,线程中的局部变量(x=10)也是线程特定的。
使用线程局部变量和局部变量有什么区别?
发布于 2021-06-01 17:04:49
与往常一样,区分变量和objects非常重要。每个变量都是指一个对象(绝不是另一个变量),通常可以更改为引用一个不同的对象;每个对象都有一定数量的变量(例如,字典条目或属性)以及其他数据(比如整数的值)。
每个变量都与某个对象相关联;局部变量可以被视为与堆栈框架相关联。更重要的是,局部变量确实是特定于线程的,但是threading.local是一个对象(不能是线程本地的),其变量(属性)是线程本地的。因此,与局部变量不同,可以有对threading.local的引用,因此可以在对象的多个用户(通常是模块或用户定义类的实例)之间共享。如果这些用户位于不同的线程上,那么每个用户都会看到关联变量的值(实际上,对于变量本身的集)。
https://stackoverflow.com/questions/67787538
复制相似问题