尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

threading.local()的实例化机制

threading.local()的实例化机制
📅 发布时间:2026/6/22 4:10:03

threading.local() 的实例化机制

  • threading.local() 是全局实例化一次的:

    • 它在模块/类/函数级别(通常在 __init__ 或全局作用域)创建一个单一的 local 对象实例(类型为 _thread._local)。

    • 这个对象本身是共享的(所有线程看到同一个 ID),但内部实现了一个线程本地存储(TLS)代理:当每个线程首次访问它时,会动态为该线程创建一个独立的“本地字典”(基于线程 ID 隔离),后续访问复用这个本地字典。

  • 示例

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-import time
    import threading
    import concurrent.futureslocal_storage = threading.local()  # 全局实例化,然后每个线程中使用或存储时,使用的是线程键def task_local(task_id):thread = threading.current_thread()if not hasattr(local_storage, 'counter_local'):local_storage.counter_local = 0print(f"{thread.name}  新线程:counter_local 初始化为 0")else:local_storage.counter_local += 1print(f"{thread.name}  复用线程:counter_local 现在是 {local_storage.counter_local}")time.sleep(0.1)return f"local 方法 - 任务 {task_id} 完成,counter_local={local_storage.counter_local}"with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:futures_local = [executor.submit(task_local, i) for i in range(4)]for future in concurrent.futures.as_completed(futures_local):print(future.result())
  • 输出

    ThreadPoolExecutor-0_0  新线程:counter_local 初始化为 0
    ThreadPoolExecutor-0_1  新线程:counter_local 初始化为 0
    ThreadPoolExecutor-0_0  复用线程:counter_local 现在是 1
    ThreadPoolExecutor-0_1  复用线程:counter_local 现在是 1
    local 方法 - 任务 0 完成,counter_local=0
    local 方法 - 任务 1 完成,counter_local=0
    local 方法 - 任务 3 完成,counter_local=1
    local 方法 - 任务 2 完成,counter_local=1

     

相关新闻

  • 采用git进行项目管理
  • 网络爬虫:简单静/动态网页
  • MySQL MVCC实现原理

最新新闻

  • Custom Agents:可编程智能体如何重构软件工程流水线
  • DeepSeek V4动态KV压缩与结构化稀疏注意力技术解析
  • Web安全实战:XSS跨站脚本攻击原理、类型与防御全解析
  • Gemini 3.1 Pro实现Nature级科研绘图的原理与实践
  • Java面试常见陷阱与应对策略,助你脱颖而出
  • 大模型推理如何实现Download Once, Infer Everywhere

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号