当前位置: 首页 > wzjs >正文

廊坊网站建设设计网站建设脑图

廊坊网站建设设计,网站建设脑图,房天下官网首页,公司网站如何做二维码什么是ThreadLocal ThreadLocal(线程本地存储)是多线程编程中实现线程隔离数据的机制,通过为每个线程创建独立的数据副本来避免资源竞争。Python 的 threading 模块通过 local 类实现这一特性: 每个线程访问 ThreadLocal 对象时&a…

什么是ThreadLocal

ThreadLocal(线程本地存储)是多线程编程中实现线程隔离数据的机制,通过为每个线程创建独立的数据副本来避免资源竞争。Python 的 threading 模块通过 local 类实现这一特性:

  • 每个线程访问 ThreadLocal 对象时,实际访问的是与该线程 ID 绑定的独立存储空间
  • 底层通过字典结构维护 {线程ID: 私有数据}
  • 无需加锁即可实现线程安全的数据访问

使用示例

from threading import Thread,local
import timelocal = local()
class MyThread(Thread):def __init__(self,name,):super().__init__()self.name = namedef run(self):print("{} is running".format(self.name))# 获取当前线程的变量print(f"{self.name} 获取当前线程的变量{local.__dict__}")# 设置当前线程的变量local.name = "{}".format(self.name)print(f"{self.name} 设置当前线程后的变量{local.__dict__}")time.sleep(1)if __name__ == '__main__':# 创建一个变量local.name = "main"local.age = 18# 创建线程for i in range(3):t = MyThread(i)t.start()print(f"main is {local.__dict__}")

输出:

0 is running
0 获取当前线程的变量{}
0 设置当前线程后的变量{'name': '0'}
1 is running
1 获取当前线程的变量{}
1 设置当前线程后的变量{'name': '1'}
2 is running
main is {'name': 'main', 'age': 18}
2 获取当前线程的变量{}
2 设置当前线程后的变量{'name': '2'}进程已结束,退出代码为 0

总结:

根据示例可以看到,每个线程的 Local 都是线程私有的,互不影响。

与Java中的ThreadLocal 对比

相同点:都是保证每个线程之间的数据是线程私有的,相互隔离。
不同点:主要是体现在实现的细节上。如下面表格所示:

特性PythonJava
实现机制基于线程ID的字典映射Thread对象维护内部Map
垃圾回收自动清理线程退出后的数据需手动调用remove()
协程支持需使用contextvarsJava 19之前无原生支持,Java 19之后支持虚拟线程(协程的一种实现)
继承性子线程不继承父线程数据InheritableThreadLocal
泛型支持动态类型强类型泛型

注意:以上是根据我自己的了解进行总结的,如果有不对的地方,还请道友指出。谢谢

http://www.dtcms.com/wzjs/606108.html

相关文章:

  • 邢台网站设计哪家专业中国制造网服务种类
  • show t团队网站艰涩小公司网站建设现状
  • 指定网站建设前期规划方案wordpress ftp重置
  • 网站做抢红包活动广告语最新经济新闻头条
  • 东莞哪里能学建设网站求好用的seo软件
  • 河北建设工程信息网换成什么网址了优化大师哪个好
  • 自适应网站做百度推广昆明做网站首选互维
  • 义乌网站建设与维护wordpress文章标题高亮插件
  • 工信部网站黑名单查询服务器怎么做网站
  • 怎样做网站平台wordpress文章编辑器连接七牛云
  • 绿色网站模板软件界面设计教程
  • 建高铁站赚钱吗咪呜瀑布流WordPress模板
  • 基于用户体验的网站设计外贸假发 网站
  • 垫江网站开发djrckjvue消息推送和系统通知
  • 酒店预定网站建设方案天津响应式网页建设公司
  • 抢注域名网站如何做手机app开发
  • 巩义网站建设方案书网站建设与管理技术发展
  • 网站用动态图片做背景怎么写金融手机网站开发
  • 郑州 外包网站沈阳营销网站建设
  • 自己建设网站需要花多少钱中国第一作文网官网
  • python django 做 网站建设网络平台费用
  • 网站建设详细的步骤有哪些品牌企业网站案例
  • 杭州模板建站定制制度建设对网站管理的重要性
  • 郑州免费建站鄂州网站建设哪家专业
  • 建设网站成都wordpress数据库密码错误
  • 不属于企业网站建设基本标准深圳外贸公司排名榜
  • 网站改版 请示山东卓创 网站建设
  • 网站备案和icp备案外国茶网站建设
  • 企业为什么要做建站音乐分享 wordpress
  • 怎么制作网站源码怎么在百度上建网站