欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > ThreadLocal详解

ThreadLocal详解

2025/1/5 12:32:30 来源:https://blog.csdn.net/ssrswk9/article/details/140043926  浏览:    关键词:ThreadLocal详解

ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。

具体有三个特性:

1、线程安全: 在多线程并发的场景下保证线程安全
2、传递数据: 我们可以通过ThreadLocal在同一线程,不同组件中传递公共变量
3、线程隔离: 每个线程的变量都是独立的,不会互相影响

ThreadLocal结构:

每个Thread维护一个ThreadLocalMap,这个Map的key是ThreadLocal实例本身,value才是真正要存储的值Object。具体的过程是这样的:

1、每个Thread线程内部都有一个Map (ThreadLocalMap)

2、Map里面存储ThreadLocal对象(key)和线程的变量副本(value)

3、Thread内部的Map是由ThreadLocal维护的,由ThreadLocal负责向map获取和设置线程的变量值

4、对于不同的线程,每次获取副本值时,别的线程并不能获取到当前线程的副本值,形成了副本的隔离,互不干扰。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com