首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用线程局部变量和局部变量有什么区别(就其用途而言)?

使用线程局部变量和局部变量有什么区别(就其用途而言)?
EN

Stack Overflow用户
提问于 2021-06-01 10:54:25
回答 1查看 78关注 0票数 2
代码语言:javascript
复制
mydata = threading.local()
mydata.x = 1

线程-本地数据是值特定于线程的数据。

例如,线程中的局部变量(x=10)也是线程特定的。

使用线程局部变量和局部变量有什么区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-01 17:04:49

与往常一样,区分变量objects非常重要。每个变量都是指一个对象(绝不是另一个变量),通常可以更改为引用一个不同的对象;每个对象都有一定数量的变量(例如,字典条目或属性)以及其他数据(比如整数的值)。

每个变量都与某个对象相关联;局部变量可以被视为与堆栈框架相关联。更重要的是,局部变量确实是特定于线程的,但是threading.local是一个对象(不能是线程本地的),其变量(属性)是线程本地的。因此,与局部变量不同,可以有对threading.local的引用,因此可以在对象的多个用户(通常是模块或用户定义类的实例)之间共享。如果这些用户位于不同的线程上,那么每个用户都会看到关联变量的值(实际上,对于变量本身的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67787538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档