Python进程和线程——ThreadLocal - 实践

在多线程环境下,每个线程都有自己的数据。一个线程应用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。

但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦,所以为了解决这个问题,ThreadLocal应运而生。不用查找dictThreadLocal帮你自动做这件事

  • 主要用途: 解决线程之间变量共享和误修改的问题,也免去了加锁的麻烦;
  • 实现原理:treadlocal援助你定义全局变量(一个字典),在线程间应用threadlocal定义的对象,就相当于拥有了一个对象副本,然而每个线程各自处理各自的材料,互不影响;
  • 特点:
    • 独立性:处理信息是独立的,隔离的;
    • 全局性:所有线程处理的内容的合集是整个threadlocal对象;
    • 不重复:经过A线程处理的数据,就不会再经过B线程处理;这样保证了唯一(单个变量结果唯一性)和并发(全局变量的并发性);
posted @ 2025-09-25 09:33  yfceshi  阅读(8)  评论(0)    收藏  举报