Discuss / Python / 对于ThreadLocal的一点点理解,欢迎指正

对于ThreadLocal的一点点理解,欢迎指正

Topic source

王珺飞MCFC

#1 Created at ... [Delete] [Delete and Lock User]

我认为ThreadLocal就是一个全局的dict,每个线程自己作为key只能访问对应的value,也就是自己的资源。(这些资源性质上相当于线程的局部变量,但是是放在数据段的,而不是线程自己的栈上)

那这有什么用呢?直接用局部变量不就行了么?

冰雨火山

#3 Created at ... [Delete] [Delete and Lock User]

局部变量函数退出的时候就消失了,全局变量会有加锁问题,线程局部存储是解决了这个问题

楽神_

#4 Created at ... [Delete] [Delete and Lock User]

如果一个线程运行时会执行多个函数,N个线程同时执行的话,你如何保证一个局部变量能在所有的函数之间正确的传递?比如线程1和线程2同时执行方法A时,方法A中的局部变量是给A合适还是给B合适?“ThreadLocal就是一个全局的dict,每个线程自己作为key只能访问对应的value”,我也是这么理解的,这样起到了不同线程间数据隔离的作用。

楼上说的瞬间解决我的疑惑,Mark


  • 1

Reply