threading.local类


01.threading.local类构建了一个大字典,存放所有线程相关的字典,其定义如下:

{ id(Thread) ==> (ref(Thread), thread-local dict) }
  • key为每个线程的线程id,value为一个元组:
    • 元组分为2部分,一是线程对象的引用,而是每个线程自己的字典。
  • threading.local类的实现原理:
    • threading.local处于不同的线程中,从大字典中找到当前线程相关键值对中的字典,覆盖threading.local实例的dict
    • threading.local可以在不同的线程中安全的使用线程独有的数据,实现线程间数据隔离。
  • threading.local类的示例:
import threading
import time
import logging


FORMAT = "%(asctime)s %(threadName)s %(message)s"
logging.basicConfig(format=FORMAT, level=logging.INFO)

result = threading.local()
文档更新时间: 2021-10-04 00:19   作者:闻骏