[@徐雷frank][¥20]ThreadLocal 这个为啥理解起来迷迷糊糊得?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

[@徐雷frank][¥20]ThreadLocal 这个为啥理解起来迷迷糊糊得?

2018-12-14 20:49:26 1442 1

(1)new ThreadLocal 对象;

(2)ThreadLocal里面有个ThreadLocalMap 的内部类,存放;

(3)每个Thread 有一个ThreadLocalMap成员变量;

(4)threadlocal.set(T):相当于为每一个线程创建了一个Object得副本变量;

threadlocal.get():获取当前thread内部ThreadLocal对象对应得value;

是这样理解的吗? 这样得话每个线程操作副本时候不会相互影响是吧,还有呢? 还解决了什么问题?

取消 提交回答
全部回答(1)
  • 徐雷frank
    2019-07-17 23:21:33

    1、Java ThreadLocal是和单个线程相关的变量,没有线程安全问题,自带自用,好比每个人出去旅游自带水壶一样,不会互相争用,。
    2、每个线程都有自己的ThreadLocal变量,
    3、线程可以使用它的get()和set()方法来获取默认值或将其值更改为Thread的本地值。
    4、ThreadLocal实例通常是希望将状态与线程相关联的类中的私有静态字段。


    阿里巴巴云栖社区Java专场12月22日周六下午 杭州,https://yq.aliyun.com/activity/796不少同学 高铁 飞机来杭州参加大会

    0 0
+关注
晓生寒
大数据开发与数据分析
11
文章
100
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载