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

threading.local()的实例化机制

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

     

http://www.rkmt.cn/news/50583.html

相关文章:

  • 采用git进行项目管理
  • 网络爬虫:简单静/动态网页
  • MySQL MVCC实现原理
  • 算法第三次作业
  • 2025年境外商务出差保险哪里有卖:TOP10平台专业解析
  • 完整教程:PMBT2222A,215 开关晶体管功率二极管 NXP安世半导体 音频放大电路 LED驱动 应用
  • 【前缀和+差分+二分】LeetCode 2528. 最大化城市的最小电量
  • Springboot启动时记录进程ID
  • 详细介绍:【Linux】07.Ubuntu开发环境部署
  • 2025 最新电缆品牌权威推荐:耐火 / 阻燃 / 智能 / 光伏等全品类优质厂商榜单,附国际认证测评
  • 2025 最新电缆制造厂家推荐!电缆品牌权威榜单发布,耐火 / 智能 / 特种电缆优选企业全解析
  • iHaier2.0 智能协同办公模块(Doc-Collab)实现实用的方案详解
  • 2025 最新钢结构源头厂家推荐排行榜,聚焦优质供应与专业服务精选榜单美标 / 欧标钢结构 / 环保设备 / 水泥矿山 / 机械设备钢结构厂家推荐
  • 当下市面上靠谱的平移门服务商
  • 2025年11月中国伸缩门源头厂家口碑推荐榜单
  • 2025年步进式加热直饮水机订制厂家权威推荐榜单:奶茶店全自动烧水器/大型工业净水器/饭店专用开水器源头厂家精选
  • 2025 年 11 月漆渣脱水设备,漆渣脱水机,漆渣脱水装置最新推荐,技术实力与市场口碑深度解析!
  • Convex
  • 【题解】P4707 重返现世
  • 滞留卡常题
  • Cursor ai network issue workaround in Ubuntu 22.04
  • 2025 年漆渣脱水设备厂家最新推荐榜单:优质品牌厂家工艺系统装置全解析,助力企业高效环保处置漆渣脱水系统/漆渣脱水机/漆渣脱水装置厂家推荐
  • [KaibaMath]1024 丑陋的真子集符号⫋的由来
  • 安装Ubuntu
  • 2025 最新无缝钢管厂家推荐榜:国际测评认证 + 技术创新 + 全场景适配权威指南
  • 【Qt开发】多元素类控件(二)-> QTableWidget - 实践
  • 实用指南:从0开始了解kafka《第二篇 kafka的安装、管理和配置》
  • AMD Instinct MI50 通过llama.cpp 在 ROCm7.0.2上运行
  • 如何成为高级的安卓逆向工程师 glm4.6
  • PyTorch实战(9)——从零开始实现Transformer - 教程